我正在尝试为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;
切记:为表创建适当的索引