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

MySQL--内连接查询(inner join)

1)内连接查询 – inner join

 语法1select f1,f2,f3...from table1 inner join table2 on 关联匹配条件语法2: select f1,f2,f3...from table1,table2,table3where 关联匹配条件

(1)自连接

概念:是内连接查询中一种特殊的等值连接,所谓的自连接就是指表与其自己当前表进行连接。自己和自己做连接。

例子:查询员工表,查询每一个员工的姓名、员工的职位和领导的姓名。
员工姓名 员工的职位 领导的姓名
smith clerk ford
allen salesman blake

分析:
t_employee e 员工表
t_employee m 领导表
关联条件 e.MGR=m.empno

select e.ename,e.job,m.enamefrom t_employee e inner join t_employee mon e.MGR=m.empno;

在这里插入图片描述
另外一种写法:

select e.ename,e.job,m.enamefrom t_employee e,t_employee mwhere e.MGR=m.empno;

在这里插入图片描述

(2)等值连接

就是在关键字on后的匹配条件是通过=来实现的;
自连接是一种特殊的等值连接。自连接是自己连接自己,等值连接通常是一个表连接另外一张表。

例子:查询部门名称,部门的所在地,员工的编号和员工的姓名。
分析:
t_employee e 员工表
t_dept d 部门表
关联条件 员工表.deptno=部门表.deptno
e.deptno=d.deptno

select d.dname,d.loc,e.empno,e.enamefrom t_employee e inner join t_dept don e.deptno=d.deptno;
select d.dname,d.loc,e.empno,e.enamefrom t_employee e,t_dept dwhere e.deptno=d.deptno;

在这里插入图片描述
练习:查询每个员工的员工编号,员工姓名,员工的工资,员工的职位,领导的姓名,部门编号,部门名称和部门所在地。
分析:

t_employee e 员工表
t_employee m 领导表
t_dept d 部门表
关联条件
员工表.MGR=领导表.empno
e.MGR=m.empno
员工表.deptno=部门表.deptno
e.deptno=d.deptno

select e.empno,e.ename,e.sal,e.job,m.ename,d.deptno,d.dname,d.locfrom t_employee e inner join t_employee mon e.MGR=m.empnoinner join t_dept don e.deptno=d.deptno;

在这里插入图片描述

select e.empno,e.ename,e.sal,e.job,m.ename,d.deptno,d.dname,d.locfrom t_employee e,t_employee m,t_dept dwhere e.MGR=m.empno and e.deptno=d.deptno;

在这里插入图片描述

(3)不等值连接

在关键字on后匹配条件中使用除了=以外的关系运算符实现的不等条件(> >= < <= !=)

例子:查询员工编号大于其领导的编号的每个员工姓名,职位和领导姓名。
step1:查询所有员工编号,姓名,领导者编号,领导姓名和 领导的员工编号。
分析:

t_employee e 员工表
t_employee m 领导表
关联条件 e.MGR=m.empno
员工表的领导者编号等于领导的员工编号

select e.empno,e.ename,e.MGR,m.ename,m.empnofrom t_employee e inner join t_employee mon e.MGR=m.empno;

在这里插入图片描述

step2:在加上员工编号大于领导的员工编号条件分析:判断条件 e.empno>m.empno

select e.empno,e.ename,e.MGR,m.ename,m.empnofrom t_employee e inner join t_employee mon e.MGR=m.empno and e.empno>m.empno;

等价写法:

select e.empno,e.ename,e.MGR,m.ename,m.empnofrom t_employee e, t_employee mwhere e.MGR=m.empno and e.empno>m.empno;

在这里插入图片描述

http://www.xdnf.cn/news/10903.html

相关文章:

  • ARM嵌入式
  • OpenGL入门系列- 编程指南例子解析 opengl_wrap
  • 游戏引擎列表
  • 爬虫入门练习
  • 在线拍卖系统(竞拍系统)源码编写开发中拍卖模式的理解和实现
  • 安卓app 实现监听手机app全局弹窗消息通知功能
  • git stash介绍(贮藏、暂存)(临时保存当前工作目录中尚未提交的修改)
  • 蓝桥杯国赛训练 day1
  • 6.4 note
  • c++ algorithm
  • 互联网 Web 网站
  • flex布局实现固定区域滚动
  • 贝利特价型号SPHSS03 液压伺服模块
  • maven在修改完配置之后新建项目还是不生效的原因
  • 13_pandas可视化_Matplotlib
  • Python库 Pympler 详解:内存分析与追踪工具
  • 父文档检索器引和RAG的context precision性能指标
  • docker-compose 方式搭建禅道(最新版)
  • 对接系统外部服务组件技术方案
  • 数据库包括哪些?关系型数据库是什么意思?
  • Percona Toolkit利器pt-config-diff:MySQL配置差异分析与实战指南
  • 【ROS2】各种相关概念汇总解释
  • 条形进度条
  • 【分层图 最短路 迪氏堆优化最短路】B4165 [BCSP-X 2024 12 月初中组] 贸易|普及+
  • SAP 自动编号的使用
  • 19-项目部署(Linux)
  • 爱普生Epson L3210打印机信息
  • 数据库OCP专业认证培训
  • 嵌入式笔试题+面试题
  • 佰力博科技与您探讨低温介电温谱测试仪的应用领域