自连接的关系

作者:孙英鹏    撰写时间:2019年3月26日

自连接的关系

今天给大家讲的是ORACLE的自连接的关系,什么是自连接?顾名思义就是自己连自己,为了区分自连接的用法,我们来看一下。

首先看一下题目:
查询员工的id,姓名,附加其上级的姓名

分析:
首先看清楚题意,查询员工姓名和上级姓名,这时可能有人会想到直接查不用自连接,因为员工姓名和上级姓名都在一张员工表里面,但我想说的是你错了,这样连接的话会出现员工姓名和上级姓名混乱,因为员工表有的员工是没有上级的,这样查出的数据是假数据,所以不能这样查,一定要用自连接方法。

不用自连接的答案:

方法1:
SELECT EMPLOYEE_ID , LAST_NAME , MANAGER_ID , LAST_NAME
FROM EMPLOYEES
ORDER BY EMPLOYEE_ID ASC;

方法2:
SELECT E.EMPLOYEE_ID , E.LAST_NAME , E.MANAGER_ID , D.LAST_NAME
FROM EMPLOYEES E , EMPLOYEES D
WHERE D.EMPLOYEE_ID = E. EMPLOYEE_ID
ORDER BY EMPLOYEE_ID ASC;

方法1和方法2都是错误的用法,方法1很明显是错的,方法2是把员工ID和员工ID弄混了,应该是员工ID和上级ID,这样才能查出来。

错误结果:
在这里插入图片描述

自连接的答案:

SELECT E.EMPLOYEE_ID , E.LAST_NAME , E.MANAGER_ID , D.LAST_NAME
FROM EMPLOYEES E , EMPLOYEES D
WHERE D. EMPLOYEE_ID = E. MANAGER_ID
ORDER BY EMPLOYEE_ID ASC;你

正确结果:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值