1.MySQL LEFT JOIN
子句允许您从两个或多个数据库表查询数据。LEFT JOIN
子句是SELECT语句的可选部分,出现在FROM
子句之后。
2我们假设要从两个表t1
和t2
查询数据。以下语句说明了连接两个表的LEFT JOIN
子句的语法:
SELECT
t1.c1, t1.c2, t2.c1, t2.c2
FROM
t1
LEFT JOIN
t2 ON t1.c1 = t2.c1;
当使用LEFT JOIN
子句将t1
表加入t2
表时,如果来自左表t1
的行与基于连接条件(t1.c1 = t2.c1
)的右表t2
匹配,则该行将被包含在结果集中。
如果左表中的行与右表中的行不匹配,则还将选择左表中的行并与右表中的“假”行组合。“假”行对于SELECT
子句中的所有相应列都包含NULL
值。
换句话说,LEFT JOIN
子句允许您从匹配的左右表中查询选择行记录,连接左表(t1
)中的所有行,即使在右表(t2
)中找不到匹配的行也显示出来,但使用NULL
值代替。
3.总之,左表的内容都要显示出来,右表不匹配的即不含该内容的用NULL表示出来。
4.当您想要找到右表中与不匹配的左表中的行时,LEFT JOIN
子句非常有用。要查询两个表之间的不匹配行,可以向SELECT语句添加一个WHERE子句,以仅查询右表中的列值包含NULL
值的行。即在最后加上where 【表名】 IS NULL , 即可判断不匹配的行。