為什么SQLANSI-92標準沒有比ANSI-89更好地采用呢?在我工作過的每一家公司,我都發(fā)現(xiàn)人們?nèi)匀辉谟肁NSI-89標準編寫SQL查詢:select a.id, b.id, b.address_1from person a, address bwhere a.id = b.id而不是ANSI-92標準:select a.id, b.id, b.address_1from person ainner join address bon a.id = b.id對于這樣一個非常簡單的查詢,可讀性沒有太大的差別,但是對于大型查詢,我發(fā)現(xiàn)將我的聯(lián)接條件分組并列出表會使我們更容易發(fā)現(xiàn)JOIN中可能出現(xiàn)的問題,讓我們在WHERE子句中保留所有篩選。更不用說,我覺得外部聯(lián)接比Oracle中的(+)語法直觀得多。當我試圖向人們傳教ANSI-92時,使用ANSI-92比ANSI-89有什么具體的性能效益嗎?我會自己嘗試,但是我們這里的Oracle設置不允許我們使用解釋計劃-不希望人們試圖優(yōu)化他們的代碼,對嗎?
3 回答

慕桂英546537
TA貢獻1848條經(jīng)驗 獲得超10個贊
人們這樣做是出于習慣 人們比較懶惰,喜歡使用“舊風格”連接,因為它們只需要較少的輸入。 初學者常常在sql-92聯(lián)接語法方面遇到問題。 人們不會僅僅因為有新語法而改用新語法 人們不知道新語法(如果您想稱它為)所具有的好處,主要是它使您能夠篩選表。 以前
你做一個外部連接,而不是在它之后,當你只有WHERE子句時。
添加回答
舉報
0/150
提交
取消