鑑於這兩個表:JOIN操作應該被多表SELECT所取代嗎?
A.a B.b
- -
1 3
2 4
3 5
4 6
如果我想交叉匹配我都可以做
SELECT * FROM A, B WHERE A.a = B.b; # and
SELECT * FROM A INNER JOIN B ON (A.a = B.b)
或者,如果我想要一個LEFT OUTER JOIN或RIGHT OUTER JOIN
SELECT * FROM A,B WHERE A.a = B.b(+); # and
SELECT * FROM A LEFT OUTER JOIN B ON (A.a = B.b)
但是,在查詢語句之間是否存在任何引擎/性能差異?
不,他們產生完全相同的查詢計劃。 –
他們***應該***生成相同的計劃。但在* some * RDBMS上,舊的記法*有時會失敗;給一個可憐的查詢計劃或可能甚至不正確的查詢計劃*(以及不正確的結果)* - 雖然這很少見,但我遇到過。 ANSI-92語法不容易出現這個問題,並且更具可讀性。 – MatBailie