我正在研究與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