我有兩個表與一個名爲'status'的字段相關。在table2.location的值爲'texas'的情況下,有20個table2.status實例的值爲'good'。SQL LEFT JOIN和WHERE產生意想不到的結果
也就是說,以下查詢返回20行table2.status ='good'。
[A] SELECT table2.status FROM table2 WHERE table2.location = 'texas';
此外,還有50個獨特的table1.id與table1.status = '好'。
也就是說,以下查詢返回50行唯一table1.id's。
[B] SELECT table1.id FROM table1 WHERE table1.status = 'good';
現在,當我運行以下查詢:
[C] SELECT table1.id FROM table1 LEFT JOIN table2 ON table1.status = table2.status WHERE table2.location = "texas";
我希望它返回50行的唯一的ID。但是,它實際上返回了50行唯一標識的20次(即我返回了1000行)。
我做的快速修復只是簡單地執行SELECT DISTINCT table1.id ...然後只返回一組50行(不是20組50行)。
但是,我想知道爲什麼我看到這個行爲 - 也許我的查詢[C]有問題嗎?
謝謝!