如果我有这个疑问:MYSQL - 使用并在JOIN与WHERE子句
select * from tableA
left outer join tableB on tableA.id=tableB.id
AND tableB.foo = 1
where tableA.owner=10
我获得了29倍的结果,但如果我动议进入WHERE子句,如:
select * from tableA
left outer join tableB on tableA.id=tableB.id
where tableA.owner=10
AND tableB.foo = 1
我那么只能得到17个结果。
我查看了所有内容,无法找到关于在JOIN和WHERE子句中如何使用AND的不同方法的权威指南。任何人都可以向我解释这个吗?
此外,如果我在JOIN中执行类似AND tableB.foo = NULL
的所有操作,即使表中的值不为空,我的所有tableB.foo字段在查询结果中都为NULL。在通过WHERE子句过滤之前,在JOIN子句中使用AND是否会更改FROM选择中的该字段?
您可以在此处看到:http://stackoverflow.com/a/15706298/7416478 –