我有一张客人表:
访客:guest_id,fname,lname,inviter_id。
部分客人受到桌上已有客人的邀请,因此他添加的访客将在inviter_id字段中显示邀请者guest_id。
所以,如果我是嘉宾,而我的guest_id是5,我邀请约翰,那么约翰的邀请函数为5。
现在我想制作一个SQL命令来获取所有的访客,但是当我返回时,我想要拥有它们的guest虚拟机的inviter_id,返回其邀请者的名字。
到目前为止,这是我的SQL(可行):
SELECT `inviter_id`, `fname`, `lname` FROM `guests` WHERE `event_id`=12 GROUP BY `guests`.`guest_id` ORDER BY `fname`
返回类似以下内容:
inviter_id - > 5,fname - > Ben,lname - > Paplak,inviter_id - > 26
我想让它归还:
inviter_id - > 5,fname - > Ben,lname - > Paplak,inviter_name - > 'John Doe'
我可以将inviter_id行的详细信息添加到这个sql中吗?
喜欢将此加入我当前的sql:
SELECT `fname`, `lname` FROM `guests` WHERE inviter_id=inviter_id
(对于每个具有与来宾匹配的inviter_id的行...)
谢谢!
答案 0 :(得分:3)
是的,您可以使用来宾表的左连接:
SELECT
g.guest_id,
g.fname,
g.lname,
i.fname AS inviter_fname,
i.lname AS inviter_lname
FROM
guests g
LEFT JOIN
guests i
ON
g.inviter_id = i.guest_id
您需要别名,因为您两次引用同一个表。