我有我一起工作的下列傳統的Oracle SQL查詢:混合SQL內部和外部連接
SELECT *
FROM
table1, table2, table3, table4
WHERE
table1.job= table2.job(+)
AND table1.event = table3.event(+)
AND
((table2.column1= table4.key AND table4.resource_type = 'xxx')
OR (table2.column2 = table4.key AND table4.resource_type = 'yyy'))
我看到,表中有一個左外連接對錶2和表1有一個左外連接上表3。但是現在最後的條款是做什麼的?
當我看着維恩圖時,我認爲它會返回table1和table4和table4共有的記錄。那麼這個查詢是否會執行兩個數據集的聯合?
如果您在where子句中使用現代顯式的'JOIN'語法代替古老的過時隱式連接,事情會更容易理解(此外,即使Oracle建議不要使用專有的(+) 'any more) –
請編輯您的問題幷包含爲上述查詢生成的查詢計劃。謝謝。 –