考虑一个小例子我有下面的表格,它看起来像这个
Employee(eid(pkey),ename)
supply(sid(pkey),sname,eid(fkey))
supplier(suid(pkey),supname,sid(fkey))
item(iid(pkey),itemname,suid(fkey))
帮助sql连接,使输出低于格式
我需要显示所有eid和ename,即使他们没有与之相关的项目名称
eid , ename , itemname
获取项目名称
答案 0 :(得分:1)
使用左联接,从员工开始,即使是没有项目的员工也将被选中。
select
e.eid,
e.ename,
i.itemname
from employee e
left join supply s on s.eid = e.eid
left join supplier su on su.sid = s.sid
left join item i on i.suid = su.suid
如果没有要求选择没有项目的员工,最好从项目开始加入:
select
i.itemname,
s.supname as suppliername,
su.sname as supplyname,
e.eid as empid,
e.ename as empname
from item i
left join supplier su on su.suid = i.suid
left join supply s on s.sid = su.sid
left join employee e on e.eid = s.eid