Mysql:选择左连接不按预期工作

Pla*_*ees 1 mysql sql select left-join

我有以下类型的查询:

select * from tbl_1 where [cond] as aliasA LEFT JOIN tbl_2 as aliasB 
 ON (aliasA.id = aliasB.id) WHERE aliasB.id IS NULL
Run Code Online (Sandbox Code Playgroud)

似乎它正在工作,除了它忽略了最后一个WHERE aliasB.id IS NULL.所以,它只是返回以下结果:

select * from tbl_1 where cond as aliasA LEFT JOIN tbl_2 as aliasB 
 ON (aliasA.id = aliasB.id)
Run Code Online (Sandbox Code Playgroud)

如何更改上述查询以获取查询tbl_1的结果,其中[cond]仅显示不在tbl_2中的行?

提前致谢!

Eri*_*man 6

aliasB.id = NULL永远都是假的.正确的方法是aliasB.id IS NULL或者更具丑陋的MySQL特定方式aliasB.id <=> NULL


Pra*_*ana 6

Orignal Ans at:我如何决定何时使用右连接/左连接或内连接或如何确定哪一个表位于哪一侧?

我发现的最佳方式是看下面的图像清除你怀疑

检查图像中的案例1和2将给出答案

并改变你的条件 WHERE aliasB.id is NULL

替代文字