MySQL-连接查询

049-内连接之等值连接

案例:查询每个员工所在的部门名称,要求显示员工名、部门名。

sql 复制代码
select e.ename, d.dname from emp e inner join dept d on e.deptno=d.deptno;

注意:inner可以省略

sql 复制代码
select e.ename, d.dname from emp e join dept d on e.deptno=d.deptno WHERE sal>=2000;

050-内连接之非等值连接

案例:查询每个员工的工资等级,要求显示员工名、工资、工资等级

sql 复制代码
select e.ename, e.sal, s.grade from emp e join salgrade s on e.sal between s.losal and s.hisal;

051-内连接之自连接

案例:找出每个员工的直属领导,要求显示员工名、领导名

sql 复制代码
select e.ename employee, l.ename boss from emp e join emp l on e.mgr=l.empno;

052-外连接

外连接之左外连接(左连接)

案例:查询所有部门信息,并且找出每个部门下的员工

sql 复制代码
select d.*, e.ename from dept d left outer join emp e on e.deptno=d.deptno;

注意:outer可以省略。

任何一个左连接都可以写作右连接。

外连接之右外连接(右连接)

案例:找出所有员工的上级领导,要求显示员工名和领导名

sql 复制代码
select e.ename employee, l.ename boss from emp l right join emp e on e.mgr=l.empno;

053-多表连接查询

三张表甚至更多张表如何进行表连接

案例:找出每个员工的部门,并且要求显示每个员工的薪资等级。

sql 复制代码
select d.dname, e.ename, s.grade from emp e join dept d on e.deptno=d.deptno join salgrade s on e.sal between s.losal and s.hisal;
相关推荐
格林威17 分钟前
Linux使用-MySQL的使用
linux·运维·人工智能·数码相机·mysql·计算机视觉·视觉检测
望获linux38 分钟前
【实时Linux实战系列】规避缺页中断:mlock/hugetlb 与页面预热
java·linux·服务器·数据库·chrome·算法
longerxin20201 小时前
MongoDB 在线安装-一键安装脚本(CentOS 7.9)
数据库·mongodb·centos
水无痕simon1 小时前
3 水平分表
java·数据库
恣艺1 小时前
探索数据库世界:从基础类型到实际应用
数据库
小钻风33662 小时前
IDEA连接redis数据库时出现Failed to connect to any host resolved for DNS name.
数据库
ulias2122 小时前
单元最短路问题
数据库·c++·算法·动态规划
安卓开发者2 小时前
鸿蒙NEXT中SQLite数据库全面实战指南
数据库·sqlite·harmonyos
xuejianxinokok3 小时前
PostgreSQL 18 新功能:虚拟生成列
数据库·后端
知其然亦知其所以然3 小时前
MySQL8.x 面试高频题:为什么一定要有主键?99%的人答不全
后端·mysql·面试