我有两张桌子
用户
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
如何在单联接查询中实现?
最佳答案
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可以为null,则查询将为:
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)
关于select - MySql-选择查询-联接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3810444/