2014-02-28 28 views
0

我有一个包含一个 用户的表:ID,名称,用户名 并包含一个 事件表:ID,AskerID,DoerID,事件名称 我需要得到提问者的名字使用AskerID,但我已经有一个左外连接 是让实干家一个SQL选择与同一表2的外键引用

我不是很好用sql ......一点点的帮助总是受欢迎

回答

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 
+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,ed。您可能还想重命名一些字段:这就是为什么我将其更名为a.NameAskerNamed.NameDoerName

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