2015-04-06 154 views
0

所以我有2個表;一個任務表和一個員工表。MySQL 2外鍵到相同的主鍵

任務由員工創建並維護將其創建爲creator_id的員工的ID。

將任務分配給某個員工,並將其分配給的員工的id維護爲responsible_id。

任務的創建者及其分配給的員工可以是不同的人。

如何編寫一個select語句,允許我顯示創建任務的員工和分配給其的員工的全名。

我認爲這可能看起來是這樣的:這

SELECT Task.Description, Employee1.name, Employee2.name 
FROM Task, Employee Employee1, Employee Employee2 
WHERE Task.creator_id = Employee1.id 
AND Task.responsible_id = Employee2.id; 

我試圖改變,但是它要麼返回錯誤或碰到內存限制。

我哪裏錯了?

+0

你得到什麼錯誤?你能用導致錯誤的小樣本數據集來更新問題嗎? – jpw

回答

0

從你描述的查詢是正確的,但你應該考慮重寫它使用明確的ANSI連接:

SELECT Task.Description, Employee1.name, Employee2.name 
FROM Task 
JOIN Employee Employee1 ON Task.creator_id = Employee1.id 
JOIN Employee Employee2 ON Task.responsible_id = Employee2.id; 

Sample SQL Fiddle