Spielen Sie einfach mit Abfragen und Beispielen herum, um die Verknüpfungen besser zu verstehen. Ich stelle fest, dass in SQL Server 2008 die folgenden zwei Abfragen dieselben Ergebnisse liefern:
SELECT * FROM TableA
FULL OUTER JOIN TableB
ON TableA.name = TableB.name
SELECT * FROM TableA
FULL JOIN TableB
ON TableA.name = TableB.name
Führen diese genau dieselbe Aktion aus, um dieselben Ergebnisse zu erzielen, oder würde ich in einem komplizierteren Beispiel auf unterschiedliche Ergebnisse stoßen? Ist das nur eine austauschbare Terminologie?
sql
sql-server-2008
tsql
join
CptSupermrkt
quelle
quelle
Antworten:
Eigentlich sind sie gleich.
LEFT OUTER JOIN
ist gleich wieLEFT JOIN
undRIGHT OUTER JOIN
ist gleich wieRIGHT JOIN
. Es ist eine informativere Art zu vergleichenINNER Join
.Weitere Informationen finden Sie in diesem Wikipedia-Artikel .
quelle
Von MSDN
Das
full outer join
oderfull join
gibt alle Zeilen aus beiden Tabellen zurück, wobei die Zeilen überall dort abgeglichen werden, wo eine Übereinstimmung hergestellt werden kann, undNULL
s an den Stellen platziert werden, an denen keine übereinstimmende Zeile vorhanden ist.quelle
Es ist wahr, dass einige Datenbanken das Schlüsselwort OUTER erkennen. Einige nicht. Wo es erkannt wird, ist es normalerweise ein optionales Schlüsselwort. Fast immer machen FULL JOIN und FULL OUTER JOIN genau dasselbe. (Ich kann mir kein Beispiel vorstellen, wo sie es nicht tun. Kann sich noch jemand eines vorstellen?)
Dies kann dazu führen, dass Sie sich fragen: "Warum sollte es überhaupt ein Schlüsselwort sein, wenn es keine Bedeutung hat?" Die Antwort läuft auf den Programmierstil hinaus.
Früher bemühten sich Programmierer, ihren Code so kompakt wie möglich zu gestalten. Jedes Zeichen bedeutete eine längere Verarbeitungszeit. Wir haben Variablen mit 1, 2 und 3 Buchstaben verwendet. Wir haben zweistellige Jahre verwendet. Wir haben alle unnötigen Leerzeichen beseitigt. Einige Leute programmieren immer noch so. Es geht nicht mehr um Bearbeitungszeit. Es geht mehr um schnelles Codieren.
Moderne Programmierer lernen, beschreibendere Variablen zu verwenden und mehr Anmerkungen und Dokumentationen in ihren Code aufzunehmen. Verwenden Sie zusätzliche Wörter wie OUTER, um sicherzustellen, dass andere Personen, die den Code lesen, ihn leichter verstehen. Es wird weniger Mehrdeutigkeiten geben. Dieser Stil ist für die Menschen, die diesen Code in Zukunft pflegen müssen, viel lesbarer und freundlicher.
quelle