我有一个名为“来宾”的表格,其中包含以下列:
我需要从某个wedding_id
中选择所有来宾,然后加入实际的邀请者fname
和lname
而不是inviter_id
(与来宾ID对应)
我到目前为止:
SELECT u.fname fname, u.lname lname, r.fname inviter_f, r.lname inviter_l
FROM guests u LEFT JOIN guests r ON u.inviter_id = r.guest_id
我缺少的唯一一块拼图是添加:
where wedding_id=10
(仅为特定婚礼ID选择结果)。
编辑后: 最后的查询: SELECT u.fname fname,u.lname lname,r.fname inviter_f,r.lname inviter_l 来自客人你LEFT JOIN来宾r ON u.inviter_id = r.guest_id,其中u.wedding_id = 10
现在有一个跟进问题:
如果没有inviter_id(设置为0),如何返回空的''值,在当前查询中它将其返回为NULL? (inviter_f和inviter_l返回NULL)
答案 0 :(得分:4)
尝试此查询:
SELECT u.fname fname, u.lname lname, r.fname inviter_f, r.lname inviter_l FROM guests u LEFT JOIN guests r ON u.inviter_id = r.guest_id WHERE u.wedding_id = 10
答案 1 :(得分:0)
FROM guests u LEFT JOIN guests r ON u.inviter_id = r.guest_id and r.wedding_id = u.wedding_id where u.wedding_id = 10;