2016-04-01 124 views
0

所以,我不太瞭解在SQL中使用隱式連接的目的。在我看來,這會讓代碼中的連接變得更加困難,而且我想知道這一點:sql中IMPLICIT JOIN的用途是什麼?

除了它的簡單性之外,是否還有更大的目的?

回答

1

從根本上說,隱式連接和顯式連接之間沒有區別。執行計劃是一樣的。

我更喜歡顯式表示法,因爲它使讀取和調試變得更容易。 此外,在顯式表示法中,您可以定義ON子句中的表和WHERE子句中的搜索條件之間的關係。

+0

我同意你關於顯式更容易閱讀。我有點失望,它沒有明確的目的與Explicit Join分離。無論如何,謝謝你的迴應。 :) – Sierra

+0

您是否認爲有明確的和隱含的時間表?也許在某種程度上,顯式變得更受歡迎。我試圖找到一些關於這個的消息來源,也許有人知道,但是一個接一個接着一個? – Sierra

+0

你可能會發現這篇文章很有趣,因爲它對你的問題有所迴應。 http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx –

1

Explicit vs implicit SQL joins

當你加入幾個表無論怎麼寫狀態的加入,反正優化器會選擇執行計劃它認爲最好。至於我: 1)隱式連接語法更簡潔。 2)它更容易自動生成,或使用其他SQL腳本生成。 所以我有時使用它。

+0

是這樣嗎?我正在閱讀關於隱式連接的簡短工作,而且似乎是......呃,不推薦。你認爲什麼讓它更簡潔? – Sierra

+0

它的表示法比顯式連接短。 =) 無論如何,在生產代碼中,我通常使用顯式樣式。因爲它有更好的可讀性。 除了需要使用其他查詢或腳本自動生成SQL的情況。將所有表名稱放在「FROM」下並將「WHERE」下的條件連接起來會更容易,就是這樣。 –