2010-09-28 44 views
0

我有兩個表MySQL的 - 選擇查詢 - 加入

用戶

ID UserName 
1 Name1 
2 Name2 
3 Name3 
4 Name4 
5 Name5 

項目

ID ItemName InsertedBy UpdatedBy 
1 Item1 1   4 
2 Item2 3   3 
3 Item3 2   5 
4 Item4 5   3 
5 Item5 4   5 

合力表需要

ID ItemName InsertedBy UpdatedBy 
1 Item1 Name1  Name4 
2 Item2 Name3  Name3 
3 Item3 Name2  Name5 
4 Item4 Name5  Name3 
5 Item5 Name4  Name5 

單連接查詢如何實現?

回答

3
SELECt Id, ItemName, u1.UserName InsertedBy, u2.UserName UpdatedBy 
FROM Item i, user u1, user u2 
WHERE i.InsertedBy = u1.Id 
    AND i.UpdatedBy = u2.Id 

如果UpdatedBy可以爲空,則查詢將是:

SELECt Id, ItemName, u1.UserName InsertedBy, u2.UserName UpdatedBy 
FROM Item i JOIN user u1 ON (i.InsertedBy = u1.Id) 
LEFT JOIN user u2 ON (i.UpdatedBy = u2.Id) 
+0

+1幾乎是正確的,你的選擇應該是'選擇i.Id,ITEMNAME,u1.UserName InsertedBy,u2.UserName UpdatedBy ' – 2010-09-28 07:22:15

+0

@lasseespeholt,謝謝,我糾正了我的錯誤 – 2010-09-28 07:27:58