WM Blog

SQL6:外连接(OUTER JOIN)

Word count: 253Reading time: 1 min
2020/07/28 Share

内连接只是返回两个数据库中都存在的数据组成的表,如果两个表含有不对称的数据,比如在表B中含有不存在表A中的主键中的数据。这时候我们就需要使用 LEFT JOIN, RIGHT JOIN 或者 FULL JOIN 了。

1
2
3
4
5
6
7
SELECT column, another_column, …
FROM mytable
INNER/LEFT/RIGHT/FULL JOIN another_table
ON mytable.id = another_table.matching_id
WHERE condition(s)
ORDER BY column, … ASC/DESC
LIMIT num_limit OFFSET num_offset;

和全连接 INNER JOIN 一样,这三种连接都需要指定连接的是哪一行。
左连接 LEFT JOIN 包含了左边表中所以的行无论是否找到右边与它相匹配的行。右连接 RIGHT JOIN 正好相反,包含了右边表中所以的行无论是否找到右边与它相匹配的行,没有匹配的就直接空着。
当使用上面任何一种新的连接方式时,我们需要写额外的逻辑来对空 NULLs 进行处理。
注意LEFT OUTER JOIN,RIGHT OUTER JOIN,FULL OUTER JOIN 中的 OUTER 可以去掉。

CATALOG