Oracle数据库中自连接是什么?

自连接是对同一个表进行的连接。要自行一个自连接,必须使用不同的表别名来标识在查询中每次对表的引用。现在考虑一个例子:store模式包含了一个名为employees的表,其中保存了员
自连接是对同一个表进行的连接。要自行一个自连接,必须使用不同的表别名来标识在查询中每次对表的引用。现在考虑一个例子:store模式包含了一个名为employees的表,其中保存了员工的信息。如果员工有管理者,那么manager_id列包含了员工的管理者的employee_id。employee_id表包含如下的行:
可以看到CEOJames Smith的manager_id列为空,这就是说他没有管理者(只对股东负责)。Fred Hobbs和Susan Jones都为Ron Johnson工作。
可以使用一个自连接来显示每个员工及其管理者的名字,在下面的例子中,employee表被引用了两次,分别使用了两个别名:w和m。别名w用于获得员工的名字,而别名m用于获得管理者的名字,自连接是对w.manager_id和m.employee_id进行的:
SELECT w.first_name ll' '  ll w.last_name II'work for' llm.first_name ll' ' llm.last_name  
FROM employees w, employees m
WHERE w.manager_id= w. employee_id;
 
W.FIRST_NAMEl I‘ ’ l IW.LAST_NAME I l ‘WORKSFOR' I IM.FIRST_NA
---------------------------------------------------------------------------

Ron Johnson works forJames Smith
Fred Hobbs works for Ron Johnson
Susan Jones works for Ron Johnson
由于James Smith的manager_id列为空,因此不会为他显示任何行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值