MySQL 查询左连接结果为NULL的行
在MySQL中,使用”LEFT JOIN”语句时,会产生许多NULL值。我们可以使用以下代码,查询左连接结果为NULL的行。
SELECT *
FROM 表1
LEFT JOIN 表2 ON 表1.关键字 = 表2.关键字
WHERE 表2.关键字 IS NULL;
下面我们来分析一下此代码的作用。
- 首先,使用SELECT语句,选取表1中所有行。
- 然后使用LEFT JOIN,连接表1和表2,以关键字匹配。
- 接着,在WHERE语句中,选取表2的关键字为NULL的行。
举个例子,假设我们有两个表:A表和B表,它们的结构如下所示:
A表:
| id | name |
|---|---|
| 1 | Tom |
| 2 | John |
| 3 | Lucy |
B表:
| id | phone |
|---|---|
| 1 | 1234567 |
| 2 | 2345678 |
现在我们要查询B表中没有对应电话号码的人员,我们可以使用以下代码:
SELECT *
FROM A
LEFT JOIN B ON A.id = B.id
WHERE B.id IS NULL;
此时的输出结果为:
| id | name | phone |
|---|---|---|
| 3 | Lucy | 空 |
可见,我们成功地查询到了B表中缺席的人员。
阅读更多:MySQL 教程
总结
使用上述代码可以有效地查询左连接结果为NULL的行。充分利用这种技巧,可以更加高效地进行MySQL查询。
极客教程