MySQL多表查询之(自连接)

自连接顾名思义 就是表自己链接自己进行查询

场景可能相对特殊一点
我们向来看一张User_List用户表
在这里插入图片描述
这里 每个员工存了一个superior_id 但他并不是其他表单外键 而是关联的本表的数据
这个id是存的自己上级的id
例如 王晓峰 和 黄晓菲 都没有上级id 因为他们一个总监 一个总经理
然后 孟悠则是一个部门的部门经理 他的上级是 总经理 所以 他的superior_id就是1 对应总经理的id
依次类推 两个组长的上级就是 部门负责人 存了superior_id3

然后 如果我们想查员工 和他上级
我们就可以这样写

select * from user_list a,user_list b where a.superior_id = b.user_id;

运行结果如下
在这里插入图片描述
看一看到 前面两条没有上级id的数据 就被过滤掉了 他不会找没有关联的数据

然后 孟悠 带出了上级 总经理 王晓峰
吴浩带出了上级 孟悠
钟侣带出了上级 孟悠

然后我们来优化一下 只要下属和上级的名字

select a.user_name,b.user_name from user_list a,user_list b where a.superior_id = b.user_id;

运行结果如下
在这里插入图片描述
没有任何问题

大家不难开出 虽然查到都是user_list表 但我们给了两个别名 分别是 a和b 此时 我们就要把a和b看成两个表来写sql

自连接 也有自左和自右链接

select a.user_name,b.user_name from user_list a left join user_list b on a.superior_id = b.user_id;

在这里插入图片描述
和左外右外是一样的用法 只是一个是连别的表 一个是连自己
不了解外连接的可以观看我的文章
https://blog.csdn.net/weixin_45966674/article/details/127336554?spm=1001.2014.3001.5502

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值