2012-05-09 3 views
5

Ich bin für eine Datenbank SQL-Prüfung zu studieren und die Art, wie ich SQL gesehen habe, ist sie so, wie es auf dieser Seite aussieht:Wann SQL Natural Join anstelle von Join verwenden .. auf?

http://en.wikipedia.org/wiki/Star_schema IE join den Weg Join <table name> On <table attribute> geschrieben und die dann Voraussetzung für die Auswahl kommen. Mein Kursbuch und meine Übungen, die mir von der akademischen Institution gegeben wurden, verwenden jedoch nur natürliche Beispiele. Wann ist es richtig, Natural Join zu verwenden? Soll Natural Join verwendet werden, wenn die Abfrage auch mit JOIN .. ON geschrieben werden kann?

Vielen Dank für jede Antwort oder einen Kommentar

+4

ein sehr gut visuell Repräsentative Artikel auf SQL können Sie Joins JOIN JOIN helfen http: //www.codinghorror. com/blog/2007/10/a-visuelle-erklärung-von-sql-joins.html – Sanath

+1

http://en.wikipedia.org/wiki/Join_%28SQL % 29 – Sanath

+1

Ein [natürlicher Join] (http://en.wikipedia.org/wiki/Join_ (SQL) #Natural_join) ist eine Art von Equi-Join, dh Bedingungen verwenden nur Gleichheitsvergleiche ('='). Wenn du etwas wie "... JOIN tblA a ON a.mount> b.amount" hättest, könnte das nicht als natürlicher Join ausgedrückt werden. – Wiseguy

Antwort

9

Ein natürlicher Join findet Spalten mit demselben Namen in beiden Tabellen und fügt für jedes gefundene Paar eine Spalte im Ergebnis hinzu. Mit dem inneren Join können Sie den Vergleich angeben, den Sie mit einer beliebigen Spalte durchführen möchten.

+1

Dies ist die beste Antwort, da es objektive, theoretische und nicht nur SQL ist. –

5

IMO ist die JOIN ON Syntax viel besser lesbar und wartbar als die Syntax natürliche verbinden. Natural Joins ist ein Überbleibsel einiger alter Standards und ich versuche es wie die Pest zu vermeiden.

+1

Ich habe heute etwas gelernt :) – keyser

+2

natürliche Joins haben viele Probleme neben der Lesbarkeit. Z.B. Wenn Sie eine der Tabellen ändern, können Sie die Abfrage unterbrechen. – svallory

+0

Ich stimme zu. Danke für die Antwort. –

1

Ein natürlicher Join findet Spalten mit demselben Namen in beiden Tabellen und fügt für jedes gefundene Paar eine Spalte im Ergebnis hinzu. Mit dem inneren Join können Sie den Vergleich angeben, den Sie mit einer beliebigen Spalte durchführen möchten.

Das Schlüsselwort JOIN wird in einer SQL-Anweisung verwendet, um Daten aus zwei oder mehr Tabellen basierend auf einer Beziehung zwischen bestimmten Spalten in diesen Tabellen abzufragen.

Verschiedene Joins

* JOIN: Return rows when there is at least one match in both tables 
* LEFT JOIN: Return all rows from the left table, even if there are no matches in the right table 
* RIGHT JOIN: Return all rows from the right table, even if there are no matches in the left table 
* FULL JOIN: Return rows when there is a match in one of the tables 

INNER http://www.w3schools.com/sql/sql_join_inner.asp

FULL http://www.w3schools.com/sql/sql_join_full.asp

+0

Danke für die Antwort. +1 –

+1

Diese Antwort behandelt die gestellte Frage überhaupt nicht. – Brad