我正在尝试为MySQL编写SELECT语句,该语句从表A中选择表B中不存在的内容。例如:

表A:

+------+
| BAND |
+------+
| 1    |
| 2    |
| 3    |
| 4    |
| 5    |
+------+

表B:
+------+
| HATE |
+------+
| 1    |
| 5    |
+------+

因此,如果表A是所有乐队,而表B是我讨厌的乐队,那么我只希望我不讨厌的乐队。因此,选择的结果应为:
+------+
| BAND |
+------+
| 2    |
| 3    |
| 4    |
+------+

我将如何为此编写一个选择?这是我最后的尝试:
SELECT * FROM A LEFT JOIN B ON A.BAND = B.HATE WHERE B.HATE IS NULL;

编辑:上面的行已修复!请参阅下面的注释...“= NULL”与“IS NULL”。

最佳答案

我会使用联接

select A.*
from A left join B on A.BAND = B.HATE
where B.HATE IS NULL;

切记:为表创建适当的索引

10-08 20:21