SQL Join 各种连接解析

SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段 。
最常见的 JOIN 类型:SQL INNER JOIN(简单的 JOIN)、SQL LEFT JOIN、SQL RIGHT JOIN、SQL FULL JOIN,其中前一种是内连接,后三种是外链接 。
假设我们有两张表,Table A是左边的表,Table B是右边的表 。

SQL Join 各种连接解析

文章插图
 
INNER JOIN内连接是最常见的一种连接,只连接匹配的行 。
inner join语法
SQL Join 各种连接解析

文章插图
 
注释:INNER JOIN与JOIN是相同
SQL Join 各种连接解析

文章插图
INNER JOIN产生的结果集中,是1和2的交集 。

SQL Join 各种连接解析

文章插图
 
执行以上SQL输出结果如下:
SQL Join 各种连接解析

文章插图
 
LEFT JOIN【SQL Join 各种连接解析】LEFT JOIN返回左表的全部行和右表满足ON条件的行,如果左表的行在右表中没有匹配,那么这一行右表中对应数据用NULL代替 。
LEFT JOIN 语法
SQL Join 各种连接解析

文章插图
 
注释:在某些数据库中,LEFT JOIN 称为LEFT OUTER JOIN
SQL Join 各种连接解析

文章插图
LEFT JOIN产生表1的完全集,而2表中匹配的则有值,没有匹配的则以null值取代 。

SQL Join 各种连接解析

文章插图
 
执行以上SQL输出结果如下:
SQL Join 各种连接解析

文章插图
 
RIGHT JOINRIGHT JOIN返回右表的全部行和左表满足ON条件的行,如果右表的行在左表中没有匹配,那么这一行左表中对应数据用NULL代替 。
RIGHT JOIN语法
SQL Join 各种连接解析

文章插图
 
注释:在某些数据库中,RIGHT JOIN 称为RIGHT OUTER JOIN
SQL Join 各种连接解析

文章插图
RIGHT JOIN产生表2的完全集,而1表中匹配的则有值,没有匹配的则以null值取代 。

SQL Join 各种连接解析

文章插图
 
执行以上SQL输出结果如下:
SQL Join 各种连接解析

文章插图
 
FULL OUTER JOINFULL JOIN 会从左表 和右表 那里返回所有的行 。如果其中一个表的数据行在另一个表中没有匹配的行,那么对面的数据用NULL代替
FULL OUTER JOIN语法
SQL Join 各种连接解析

文章插图
 

SQL Join 各种连接解析

文章插图
FULL OUTER JOIN产生1和2的并集 。但是需要注意的是,对于没有匹配的记录,则会以null

SQL Join 各种连接解析

文章插图
 
执行以上SQL输出结果如下:
SQL Join 各种连接解析

文章插图




    推荐阅读