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

场景可能相对特殊一点
我们向来看一张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

MySQL多表查询之(自连接)相关推荐

  1. java mysql 多表查询_解析Mysql多表查询的实现

    查询是数据库的核心,下面就为您介绍Mysql多表查询时如何实现的,如果您在Mysql多表查询方面遇到过问题,不妨一看. Mysql多表查询: CREATE TABLE IF NOT EXISTS co ...

  2. mysql多表查询详解_MySQL多表查询详解上

    时光在不经意间,总是过得出奇的快.小暑已过,进入中暑,太阳更加热烈的绽放着ta的光芒,...在外面被太阳照顾的人们啊,你们都是勤劳与可爱的人啊.在房子里已各种姿势看我这篇这章的你,既然点了进来,那就由 ...

  3. mysql教程多表查询_解析Mysql多表查询的实现

    查询是数据库的核心,下面就为您介绍Mysql多表查询时如何实现的,如果您在Mysql多表查询方面遇到过问题,不妨一看. Mysql多表查询: CREATE TABLE IF NOT EXISTS co ...

  4. msql查询姓名不带r的员工姓名_java基础之MySQL多表查询2

    第四节 多表查询 4.1 三表连接查询 [示例9]查询员工的编号.姓名.薪水.部门编号.部门名称.薪水等级 -- 三个表连接查询 scott(dept emp salgrade) select * f ...

  5. 零基础带你学习MySQL—多表查询笛卡尔集(二十)

    零基础带你学习MySQL-多表查询笛卡尔集(二十) 一.多表查询 多表查询:就是指基于两个和两个以上的表的查询,在实际应用中,单个表并不能满足你的需求,我们经常需要在很多个表之间查询数据 二.笛卡尔集 ...

  6. mysql 大表查询慢_mysql大表查询慢怎么优化?

    mysql大表查询慢的优化方法:1.合理建立索引,通常查询利用到索引比不用索引更快:2.对关键字段建立水平分区,比如时间字段,若查询条件往往通过时间范围来进行查询,能提升不少性能:3.建立粗粒度数据表 ...

  7. mysql锁表查询和解锁操作

    mysql锁表查询和解锁操作 1.在做数据库操作时,有时会因为自己的粗心或者程序设计上的缺陷导致锁表,在mysql中查看锁表和解锁的步骤如下: //1.查看当前数据库锁表的情况SELECT * FRO ...

  8. Mysql 多表查询详解

    Mysql 多表查询详解 一.前言  二.示例 三.注意事项 一.前言  上篇讲到Mysql中关键字执行的顺序,只涉及了一张表:实际应用大部分情况下,查询语句都会涉及到多张表格 : 1.1 多表连接有 ...

  9. Mysql多表查询效率的研究(一)

    Mysql多表查询效率的研究(一) 本文探究了mysql InnoDB引擎在多表查询的应用场景下,使用子表.内连接和左联接运行速度的差别,并且比较了索引使用与否对查询效率的影响. 第一部分简略地概括了 ...

最新文章

  1. Educational Codeforces Round 114 (Rated for Div. 2) (A ~ F)全题解
  2. 阶乘在c语言代码大全,求10000的阶乘(c语言代码实现)
  3. 用计算机源码计算加法,MFC实现简单计算器(支持加减乘除和括号运算)
  4. 泰坦尼克号数据集_泰坦尼克号项目可视化
  5. [Swift]LeetCode324. 摆动排序 II | Wiggle Sort II
  6. 大前端的自动化工厂(2)—— SB Family
  7. IBM MQ的常用命令
  8. Java项目中 log4j的用法
  9. idea-解决安装及各种问题
  10. 为什么 BI 软件都搞不定关联分析?带你分析分析
  11. MIT6.031学习笔记:(一)code review
  12. 迅雷和BT有什么区别?迅雷是不是不毁硬盘?速度快吗?
  13. 【Jupyter Notebook】在jupyter中使用数学公式
  14. 代码实现判断主机字节序(大端 or小端 )-- 面试题
  15. LSF - 提交GUI应用到LSF无法运行,报错Failed to connect to socket /tmp/dbus-xxxxxxxxx: Connection refused
  16. 前端框架Layui学习五:弹出层和数据表格
  17. 西班牙语c1申请语言学校,西班牙留学需不需要西班牙语成绩?语言要求是什么?...
  18. 【Unity植物大战僵尸】UI点击太阳花的拖拽和放置实现(七)
  19. Permission denied: win7下面eclipse上传本地文件到DFS 运行M/R程序时出现的同样的错误解决方法
  20. 复盘:一副牌(54张),三人斗地主,大小王在同一家的概率是多少

热门文章

  1. Vue页面如何~及时更新页面数据
  2. Flutter2.5新特性 中文版
  3. 新元宇宙奇科幻小说原创作品每周连载《地球人奇游天球记》第九回女神伴飞
  4. spring管理事务管理1----------编程式(以下源码均为spring2.5.6)
  5. 古人的智慧之回文诗——《两相思》
  6. Scratch少儿编程案例-植物大战僵尸-趣味角色版
  7. Typora简单传图(Typora+PicGo-Core+SMMS/阿里云OSS 实现图床)
  8. APS 与 MES 的区别是什么?
  9. MySQL全网最细总结
  10. Rushcrm:如何利用CRM系统的权限设置