該數據庫在這裏:http://sqlfiddle.com/#!9/bf0171兩個表上的SQL查詢;
我想找到「Prof.David」類的所有學生。然而,查詢的結果是:
Select Student.name from Student, Teacher where Teacher.s_id =Student.id and Teacher.name="Prof. David";
+------+
| name |
+------+
| Tom |
| John |
| Mary |
| Tom |
| John |
| Mary |
+------+
我想結果應該是「湯姆」,只有「約翰」。有什麼問題?
這實際上與聯接作品: 「這裏Teacher.s_id = Student.id和Teacher.name =」 教授。大衛「,它會正確返回」Tom「和」John「,而不使用」JOIN「 – user697911
您可以隱式加入到WHERE子句中,但我不推薦它。如果需要執行左連接,會發生什麼?你的WHERE標準有一個OR語句嗎?有很多東西可能會出錯,明確使用JOIN將有助於減少事故。 –
@ user697911 - 爲了討論的緣故,這裏是一個來自不同StackExchange的線程:http://程序員.stackexchange.com/q/78225 –