2014-06-17 72 views
-3

我使用3个表:项目project_managerproject_employeeMutilple SELECT在一个查询

项目

- project_id (int, PK) 
- project_name 

project_manager

- project_id (int, PK) 
- manager_id (int, PK) 

project_employee

- project_id (int, PK) 
- employee_id (int, PK) 

假设一个经理当前登录(所以我们知道什么是他的ID),我试图做的是编写一个查询,将显示网格视图显示:

PROJECT_ID,PROJECT_NAME和工程员工数量,

例如:

Project ID    Project Name     Number of employees 
    1     Test Project       3 
    2     Government Fund      5 

所以,我想:

SELECT COUNT (*) AS employee_number, NULL AS Unnecessary_Column 
FROM [project_employee] 
WHERE project_id = @pID 
UNION 
SELECT [projects].project_id, [projects].project_name 
FROM [projects], [project_manager] 
WHERE [project_manager].project_id = [projects].project_id AND [project_manager].mag_id = @mID 

但结果并不像我期待......我与我的查询得到的是2列EMPLOYEE_NUMBER和Unnecessary_Column与搞砸数据。

+0

你期待什么结果和你想说什么呢? – ElGavilan

+0

@ElGavilan我想要的结果是在我的问题,我得到的是我的查询是2列employee_number和Unnecessary_Column与数据混乱。 –

+0

为什么人们把它投下来并想关闭它,我的问题有什么不对吗? –

回答

1

试试这个查询,而不是

SELECT   projects.project_id, 
       projects.project_name, 
       count(*) as NumberOfEmployees 
FROM    projects 
INNER JOIN  project_manager manager ON projects.project_id = manager.project_id 
INNER JOIN  project_employee emp ON projects.project_id = emp.project_id 
WHERE   manager.manager_id = @mId    
GROUP BY   projects.project_id,projects.project_name 
+0

它总是给出一个空的结果,你能再次检查它吗? –

+1

对不起,我的错。编辑查询 –