SQL连接,三表连接
1.外连接和内连接
内连接(inner join):假设A和B表进行连接,使用内连接的话,凡是A表和B表能够匹配上的记录查询出来,这就是内连接。AB两张表没有主副之分,两张表是平等的。
外连接:假设A和B表进行连接,使用外连接的话,AB两张表中有一张表是主表,一张表是副表,主要查询主表中的数据,捎带着查询副表,当副表中的数据没有和主表中的数据匹配上,副表自动模拟出NULL与之匹配。
外连接的分类
- 左外连接(left join):表示左边的这张表是主表。
- 右外连接(right join):表示右边的这张表是主表。
内连接与外连接的区别
- 外连接:主表的数据无条件的全部查询出来
- 内连接:按匹配记录查询,
- sql中直接写join,默认为inner join
- 内连接不会展示不匹配的数据,外连接不匹配的数据会展示null,注意有些sql是需求查询全部数据,需要查出null的数据进行处理,不要直接默认使用inner
案例1:三张表怎么连接查询?找出每一个员工的部门名称以及工资等级。
点击查看代码
select
e.ename,d.DNAME,s.GRADE
from
EMP e
left join
DEPT d on e.deptno=d.DEPTNO
left join
SALGRADE s on e.sal
between
s.LOSAL and s.HISAL
参考链接:https://blog.csdn.net/qq_34184505/article/details/118890234