列出处理特定项目的所有员工

时间:2014-10-28 18:58:49

标签: php mysql select

我正在使用一个名为company的mysql DB with Tables:

Employee-> |id_emp|fName|lName|id_Dept|

Department-> |id_Dept|dName|

Project-> |id_Proj|pName|id_Dept|status|budget|actBudget|

Emp_Prof-> |id_Emp|id_Proj|

我不确定如何运行与emp_proj连接表一起使用的查询。

要列出处理特定项目的所有员工,我可以使用此查询:

SELECT id_Emp 
FROM emp_proj 
WHERE id_Emp IS NOT NULL;

但是,我想从员工表中输出fNamelName。我想我需要在Employee上使用来自Emp_Profid_Emp的加入。

任何人都可以帮助这种类型的查询语法吗? 感谢...

4 个答案:

答案 0 :(得分:0)

尝试:

SELECT Employee.fName, Employee.lName FROM emp_proj, Employee WHERE emp_proj.id_Emp = Employee.id_Emp

答案 1 :(得分:0)

我认为这个查询可能有所帮助。

select e.fName,e.lName from Employee e,emp_proj ep,Project p where e.id_Emp=ep.id_Emp and ep.id_Proj = p.id_Proj and p.pName="<<Project Name>>"

答案 2 :(得分:0)

您无需使用联接。数据库已经建立了关系。在这种情况下,只需使用id匹配的位置Employee.id_Emp = emp_proj.id_Emp match

SELECT Employee.fName, Employee.lName 
FROM Employee, emp_proj
WHERE emp_proj.id_Emp = Employee.id_Emp;

答案 3 :(得分:0)

如果要选择处理特定项目的所有员工,则需要加入employee和emp_proj表。您可以在where子句中过滤特定的ID:

SELECT e.fName, e.lName
FROM employee e
JOIN emp_proj ep ON e.id_emp = ep.id_emp
WHERE ep.proj = 'Whatever you want here.';

请注意,当您拥有项目ID时,这会有效。如果您没有该ID,并且想要查找给定项目名称的员工数量,则需要加入更多表格。如果是这种情况,请告诉我,我可以编辑问题,向您展示该如何完成。