2016-04-01 8 views
0

So verstehe ich nicht wirklich den Zweck der Verwendung eines impliziten Joins in SQL. Meiner Meinung nach macht es einen Join schwieriger im Code zu erkennen, und ich frage mich:Was ist der Zweck eines IMPLICIT JOIN in SQL?

Gibt es einen größeren Zweck, um dies neben der Einfachheit zu tun?

Antwort

1

Grundsätzlich gibt es keinen Unterschied zwischen dem impliziten Join und dem expliziten JOIN .. ON. Ausführungspläne sind gleich.

Ich bevorzuge die explizite Notation, da es das Lesen und Debuggen erleichtert. Darüber hinaus definieren Sie in der expliziten Notation die Beziehung zwischen den Tabellen in der ON-Klausel und der Suchbedingung in der WHERE-Klausel.

+0

Ich stimme Ihnen zu, dass das explizite Lesen einfacher ist. Ich bin ein wenig enttäuscht, dass es keinen definierten Zweck gibt, der von dem expliziten Join getrennt ist. In jedem Fall, danke für die Antwort. :) – Sierra

+0

Denkst du vielleicht, dass es eine explizite und implizite Zeitlinie gibt? Vielleicht war es an einer Ecke, die explizit populärer wurde. Ich habe versucht, einige Quellen dazu zu finden, vielleicht weiß jemand, aber ist einer nach dem anderen gekommen? – Sierra

+0

Sie können diesen Artikel interessant finden, wie es etwas auf Ihre Frage reagiert. 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

Wenn Sie ganz gleich mehrere Tabellen miteinander verbinden, wie der Zustand geschrieben beitreten, werden ohnehin Optimierer Ausführungsplan wählen sie die beste in Betracht ziehen. Wie für mich: 1) Implizite Joinsyntax ist prägnanter. 2) Es ist einfacher, es automatisch zu generieren, oder produzieren mit anderen SQL-Skript. Also ich benutze es manchmal.

+0

Ist das so? Ich habe eine kurze Arbeit über den impliziten Join gelesen und es scheint ... nun, nicht empfehlenswert. Was denkst du, macht es prägnanter? – Sierra

+0

Es ist die Notation kürzer als die explizite Verknüpfung. =) Wie auch immer im Produktionscode verwende ich normalerweise expliziten Stil. Wegen seiner besseren Lesbarkeit. Außer den Fällen, in denen SQL automatisch mit anderen Abfragen oder Skripten generiert werden muss. Es ist einfacher, alle Tabellennamen unter "FROM" zu setzen und Bedingungen unter "WHERE" hinzuzufügen, und das war's. –