我正在研究与Oracle
连接的PHP page
。我遇到了这个SQL,我不确定它在做什么,所以我想我会问这里。有问题的SQL是这样的:SQL中AND与WHERE子句的用法
select tableA.id, tableA.name, tableB.details
from tableA
left join tableB on
tableB.id = tableA.id
and
tableB.logId = '<logged_in_user>'
现在,当我登录为谁没有TableB中条目的用户,我仍然得到记录时,该查询运行。我的假设是,而不是'and'
该条款应该是'where'
。
left join tableB on
tableB.id = tableA.id
where
tableB.logId = '<logged_in_user>'
所以我的两个问题是。
- 我说错了吗?
- 如果是这样,那么为什么查询返回结果?子句检查是什么
'and'
?
有人可以解释在上述查询中使用AND vs WHERE时的区别吗?
在此先感谢!
既然你没有告诉我们tableA和tableB是什么,或者你想从这个查询中看到什么样的行为,我们不能告诉你这个查询应该是什么。我们所能做的就是指出“left join tableB on ... where tableB.logId = ...'将永远是错误的。 – 2013-05-06 14:22:16