我注意到的是,形式的查詢是FROM x JOIN y ON x.a = y.b相當於FROM x,y WHERE x.a = y.b?
SELECT *
FROM a
JOIN b ON a.x = b.y
WHERE [more conditions...];
分別爲形式
SELECT *
FROM a,b
WHERE a.x = b.y
AND [more conditions...];
直覺,他們似乎等同的查詢返回相同的數據的一些測試數據,但我不相信這是這樣的。
我更喜歡使用JOIN
的查詢,因爲它將查詢的通用結構與查詢的特定業務邏輯分開。即,使用JOIN
的查詢的WHERE
部分中的條件是可以參數化的條件。
在哪些其他方式,如果有的話,這些查詢是不是完全相同?
什麼是數據庫平臺? – 2014-10-20 15:11:49
這可能會幫助你http://stackoverflow.com/questions/44917/explicit-vs-implicit-sql-joins – 2014-10-20 15:12:19
是的,在大多數RDBMSs中,它們不僅會返回相同的記錄,而且會具有完全相同的執行路徑好。 – JNevill 2014-10-20 15:13:27