图解 SQL 中 JOIN 的各种用法

JOIN分类

图解 SQL 中 JOIN 的各种用法_第1张图片

INNER JOIN

仅仅返回两个表中,匹配列相同的列值,所在行的数据。

SELECT * FROM Table1 t1 INNER JOIN Table2 t2 ON t1.Col1 = t2.Col1

图解 SQL 中 JOIN 的各种用法_第2张图片

LEFT OUTER JOIN

左外连接:返回左表的所有数据,并且在右表中不能匹配的列值,其坐在行则使用空值。

SELECT * FROM Tables1 t1 LEFT OUTER JOIN Table2 t2 on t1.Col1 = t2.Col2

图解 SQL 中 JOIN 的各种用法_第3张图片

LEFT OUTER JOIN - WHERE NULL

返回和右表不匹配的所有数据行

SELECT * FROM Table1 t1 LEFT OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1 WHERE t2.Col1 IS NULL

图解 SQL 中 JOIN 的各种用法_第4张图片

RIGHT OUTER JOIN

右外连接:返回右表的所有数据,并且在左表中不能匹配的列值,其所做在行则使用空值。

SELECT * FROM Tables1 t1 RIGHT OUTER JOIN Table2 t2 on t1.Col1 = t2.Col2

图解 SQL 中 JOIN 的各种用法_第5张图片

RIGHT OUTER JOIN – WHERE NULL

返回和左表不匹配的所有数据行。

SELECT * FROM Table1 t1 RIGHT OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1 WHERE t1.Col1 IS NULL

图解 SQL 中 JOIN 的各种用法_第6张图片

FULL OUTER JOIN

完全连接可看作是左外连接和右外连接结果之和,返回两个表的所有数据,如果匹配列的值在两个表中匹配,那么返回数据行,否则返回空值。

SELECT * FROM Table1 t1 FULL OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1

图解 SQL 中 JOIN 的各种用法_第7张图片

FULL OUTER JOIN – WHERE NULL

返回内连接以外的数据行,即匹配列坐在行以外的所有数据。

SELECT * FROM Table1 t1 FULL OUTER JOIN Table2 t2 ON t1.ID = t2.ID WHERE t1.ID IS NULL OR t2.ID IS NULL

图解 SQL 中 JOIN 的各种用法_第8张图片

CROSS JOIN

交叉连接不需要任何连接条件。这个会把两个表的的数据进行笛卡尔积操作。

SELECT * FROM Table1 t1 CROSS JOIN Table2 t2

图解 SQL 中 JOIN 的各种用法_第9张图片
原文:https://mp.weixin.qq.com/s?__biz=MzI4Njc5NjM1NQ==&mid=2247488088&idx=2&sn=501652bb26f69a11f6aca0953cbfdc50&chksm=ebd62d74dca1a4624c476ceaf04327d826c916f550a5660a287dd175034d2edb9c21b4cb4b02&mpshare=1&scene=24&srcid=#rd

你可能感兴趣的:(Database)