【发布时间】:2014-10-29 10:36:16
【问题描述】:
目前我的架构如下所示:
CREATE TABLE IF NOT EXISTS `hours` (
`Project_ID` varchar(10) NOT NULL,
`Project_Name` varchar(50) NOT NULL,
`Res_ID` varchar(40) NOT NULL,
`Date` date NOT NULL,
`Hours` int(10) NOT NULL,
)
CREATE TABLE IF NOT EXISTS `project_resources` (
`Project_ID` varchar(10) NOT NULL,
`Res_ID` varchar(40) NOT NULL
)
//A single project Id can be assosiated with many resource id's
CREATE TABLE IF NOT EXISTS `resources` (
`Res_ID` varchar(40) NOT NULL,
`Res_Name` varchar(50) NOT NULL,
`Email` varchar(50) NOT NULL,
`Phone_Number` bigint(12) NOT NULL,
`Reporting_Manager` varchar(50) NOT NULL,
`Role` varchar(50) NOT NULL,
`Designation` varchar(50) NOT NULL,
`Password` varchar(50) NOT NULL
)
我在这里尝试生成一个查询,以便它以以下格式显示数据,
资源名称 |总和(小时)。
我尝试执行以下查询
SELECT res_name,sum(hours) FROM hours h
INNER JOIN resources r ON h.res_id=r.res_id
WHERE r.res_id = (SELECT res_id FROM `project_resources` WHERE project_id='someproject')
我知道这返回子查询返回超过 1 行错误。但我只是想知道我能做些什么来让这个查询正确。
【问题讨论】:
-
你的表的主键在哪里?
-
对不起,我忘记了,
hours表的主键是('project_id','res_id','date') 的组合。对于project_resources表的主键是('project_id ','res_id') 和resources表的主键是 'res_id'
标签: php mysql sql database join