2014-10-28 26 views
0

我与一个MySQL数据库的工作工作的员工的所谓公司表:列表中的所有某一特定项目

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从雇员表。我想我需要使用来自EmployeeEmp_Prof的连接id_Emp

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

+0

要显示'fName','lName','id_Proj'吗?我对吗? – cuSK 2014-10-28 19:12:27

+0

看看[我的答案](http://stackoverflow.com/questions/26616391/list-all-of-the-employees-working-on-a-particular-project#answer-26616779),并接受它,如果它工作为你而出。谢谢。 – cuSK 2014-10-28 19:37:08

+0

@cuSK你只是在评论中宣传自己的答案吗? OP会在每次有人回答时收到通知,我相信会花时间查看每个人。 – AdamMc331 2014-10-28 19:41:23

回答

0

尝试:

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

只是建议:通过将每个子句放在行上来对齐查询。它使人们更容易阅读某人,而不是将他们的眼睛拖曳在一条直线上。 – AdamMc331 2014-10-28 19:35:50

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>>" 
0

您不需要使用连接。数据库已经建立了一个关系。只需使用其中的ID在这种情况下Employee.id_Emp = emp_proj.id_Emp比赛

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

您仍需要加入emp_proj表。 – AdamMc331 2014-10-28 19:28:13

+0

很好的修复。我只是觉得值得一提的是,即使你不使用'JOIN'语法,你仍然可以从多个表中进行选择。 – AdamMc331 2014-10-28 19:33:17

+1

是的,我把那一部分拿出来了。 Thanx – 2014-10-28 19:36:15

0

匹配。如果你想选择一个特定的项目上工作的所有员工,你需要加入员工和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,并且想要查找给定项目名称的员工数量,则需要加入更多表格。如果是这种情况,让我知道,我可以编辑问题,告诉你如何完成。

+0

非常棒!我能够成功地使用您的查询... Tnx。我对这一切都很陌生。 – ksdst1 2014-10-28 22:15:46

+0

完全没问题,@ ksdst1。乐意效劳。如果它适合你,欢迎随时上传并接受答案。 – AdamMc331 2014-10-28 23:21:48

相关问题