2014-10-28 53 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

相關問題