加入四个表

时间:2017-04-28 12:48:04

标签: sql oracle

考虑一个小例子我有下面的表格,它看起来像这个

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

获取项目名称

1 个答案:

答案 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