我有一个包含一个 用户的表:ID,名称,用户名 并包含一个 事件表:ID,AskerID,DoerID,事件名称 我需要得到提问者的名字使用AskerID,但我已经有一个左外连接 是让实干家一个SQL选择与同一表2的外键引用
我不是很好用sql ......一点点的帮助总是受欢迎
我有一个包含一个 用户的表:ID,名称,用户名 并包含一个 事件表:ID,AskerID,DoerID,事件名称 我需要得到提问者的名字使用AskerID,但我已经有一个左外连接 是让实干家一个SQL选择与同一表2的外键引用
我不是很好用sql ......一点点的帮助总是受欢迎
你可以像一个表,根据不同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
假设表用户名为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
。
它是这样的,
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
感谢这正是我想要做的! –