当前位置: 首页 > news >正文

27.自连接

自连接是指在同一张表的连接查询【将同一张表看作两张表】。

1.案例

先看一下以前创建过的一张雇员表:

可以看到smith的mgr字段是7902,也就是ford的empno,其中的含义就是:员工smith的领导是ford。

现在我们有这样一个需求:显示员工名字和其领导的名字。

但是,员工名字和其领导的员工号都在一张表里面,该如何显示二者呢?

于是自连接的概念就诞生了:一张表当作两张表查。

SELECT * from emp,emp;

显然这样直接查会直接报错,其提示我们用别名(alias)。

SELECT * from emp worker,emp boss;

像这种直接写在要查的表名之后的就是别名了。

但是,这时依然会有问题。

我们得到了196条记录,也就是14*14=196条,毋庸置疑,通过别名的方式把一个表当两张表来查,出现了笛卡尔集。

为了解决此问题,我们需要进行过滤。

明确一下过滤的条件:只有worker的mgr和boss的empno相等时才是有意义的记录。

SELECT worker.ename as '员工名子',boss.ename as '领导名字'from emp worker,emp bossWHERE worker.mgr = boss.empno;

可以看到我们成功的得到了13条记录,少的一条记录就是king,其是最大的boss,其mgr是null。

2.总结

自连接的特点

  1. 把同一张表当做两张表使用
  2. 需要给表取别名
  3. 列名不明确,可以指定列的别名 别名 as 列的别名
http://www.lryc.cn/news/571654.html

相关文章:

  • 你的下一把量化“瑞士军刀”?KHQuant适用场景全解析【AI量化第32篇】
  • 数据集笔记:宣城轨迹
  • 权重遍历及Delong‘s test | 已完成单调性检验?
  • 键盘 AK35I Pro V2 分析
  • ABP vNext + Azure Application Insights:APM 监控与性能诊断最佳实践
  • 零基础设计模式——总结与进阶 - 1. 设计模式的综合应用
  • 利用cpolar实现Talebook数字图书馆的实时访问
  • ZYNQ学习记录FPGA(五)高频信号中的亚稳态问题
  • VMware vSphere Foundation 9.0 技术手册 —— Ⅰ 安装 ESXi 9.0 (虚拟机)
  • 数据库char字段做trim之后查询很慢的解决方式
  • 需要做一款小程序,用来发券,后端如何进行设计能够保证足够安全?
  • 微信原生小程序转uniapp过程及错误总结
  • 环卫车辆定位与监管:安心联车辆监控管理平台--科技赋能城市环境卫生管理
  • 【力扣 中等 C】2. 两数相加
  • chili3d笔记18 出三视图调整
  • 数据结构——选择题—查漏补缺
  • Could not locate zlibwapi.dll. Please make sure it is in your library path!
  • 功耗高?加密弱?爱普特APT32F1023H8S6单片机 2μA待机+AES硬件加密破局
  • Vue3 + TypeScript 本地存储 localStorage 的用法
  • 【时时三省】(C语言基础)内部函数和外部函数
  • Cornerstone3D 2.x升级调研
  • EPLAN P8 2.9 如何使用.step格式3D文件绘制3D安装布局图
  • 用idea操作git缓存区回退、本地库回退、远程库回退
  • Oracle client 静默安装
  • 【八股消消乐】构建微服务架构体系—一致性抽象
  • react 自定义状态管理库
  • sql_mode(二)宽松模式和严格模式的区别
  • CHASE、CoSQL、SPARC概念介绍
  • 以list为输入条件,查询数据库表,java中的mapper层和mybatis层应该怎么写?
  • 裸金属服务器深度评测:云计算时代的性能与安全担当​​​​