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 图示
表如下
内连接
外连接
交叉连接