内连接只是返回两个数据库中都存在的数据组成的表,如果两个表含有不对称的数据,比如在表B中含有不存在表A中的主键中的数据。这时候我们就需要使用 LEFT JOIN, RIGHT JOIN 或者 FULL JOIN 了。
1 | SELECT column, another_column, … |
和全连接 INNER JOIN 一样,这三种连接都需要指定连接的是哪一行。
左连接 LEFT JOIN 包含了左边表中所以的行无论是否找到右边与它相匹配的行。右连接 RIGHT JOIN 正好相反,包含了右边表中所以的行无论是否找到右边与它相匹配的行,没有匹配的就直接空着。
当使用上面任何一种新的连接方式时,我们需要写额外的逻辑来对空 NULLs 进行处理。
注意:LEFT OUTER JOIN,RIGHT OUTER JOIN,FULL OUTER JOIN 中的 OUTER 可以去掉。