sql多表操作-内连接inner join、外连接left/right (out) join和交叉连接

1 内连接、外连接和交叉连接的区别

内连接:匹配2个表中的相同字段,没有的不加入结果集。

外连接:匹配2个表中共有的字段。分为3种: 左连接——以左边的为基准,右表中没有的(相同字段值)为null; 右连接——以右边的为基准,左表中没有的为null; 全连接——左右2边的结果都在表中。

交叉连接:交叉联接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉联接也称作笛卡尔积。(用的少,一般情况下的,都是有一项是相同的,如id相同的情况下,否则没有意义。)

2 基本语法

两表连接
select a., b. from a inner join b on a.a1 = b.b1

三表连接
select a.* , c.c1
from a
inner join b on a.a1= b.b1
inner join c on c.c1=b.b1

或者
select a.*,c.c1
from (select a., b. from a inner join b where a.a1=b.b1) as b inner join c where c.c1=b.b1

3 图示

表如下
这里写图片描述
内连接
这里写图片描述
外连接
这里写图片描述
这里写图片描述
这里写图片描述
交叉连接
这里写图片描述

猜你喜欢

转载自blog.csdn.net/yhfmj123/article/details/80391511