我有一张包含a的表 user:ID,Name,UserName 和一个包含一个表的表 事件:ID,AskerID,DoerID,事件名称 我需要使用AskerID获取Asker的名称,但我已经有一个左外连接 得到行动者
我对sql不是很好...总是欢迎一点帮助
答案 0 :(得分:1)
假设用户的表名为Users
,并且带有该事件的表名为Events
:
select e.ID
e.AskerID
a.Name as AskerName
e.DoerID
d.Name as DoerName
e.EventName
from Events e
left join Users a
on e.AskerID = a.ID
left join Users d
on e.DoerID = d.ID
您可以多次将连接(或内连接)保留在同一个表中:您只需要为其中一个或两个提供别名。这就是a
,e
和d
的含义。您可能还想重命名某些字段:这就是我将a.Name
重命名为AskerName
而将d.Name
重命名为DoerName
的原因。
答案 1 :(得分:0)
就是这样,
SELECT E.*, U1.ID AS DOERID, U2.ID AS ASKERID
FROM AS EVENT AS E
LEFT JOIN USER AS U1
ON E.DOERID = U1.ID
LEFT JOIN USER AS U2
ON E.ASKERID = U2.ID
答案 2 :(得分:0)
您可以根据不同的ChildKeys(AskerID,DoerID)将一个表添加到其他表中。
Select
a.Name as Asker
, d.Name as Doer
, e.EventName
from event as e
left outer join user as a
on e.AskerID = a.ID
left outer join user as d
on e.DoerID = d.ID