2010-09-28 68 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