2013-01-04 53 views
0

我有一个表Users这是与多次像下面选择不同的值:如何从同一个连接表,但在不同的外键

enter image description here

所以,当我要求NameRequest从用户我得到了其中一个名字,我希望两者都是,这是我第一次遇到这种情况,而且我不知道如何从SQL中做到这一点。

查询可能是这样的:

SELECT Name as Originator, Name as Requestee FROM View ... JOIN ... WHERE Id = 123 

回答

5

这很简单,你需要两个用户,您加入Users表两次,如:

SELECT ou.Name as Originator, ru.Name as Requestee 
FROM Requests r 
    INNER JOIN Users ou ON r.Originator_Id = ou.Id 
    INNER JOIN Users ru ON r.Requestee_Id = ru.Id 
WHERE r.Id = 123 
+2

并使用'LEFT'加入如有两个ID是可空的。 –

+0

“刘易斯撞在墙上”......谢谢! – sprocket12

相关问题