Der SQL RIGHT JOIN schließt alle Zeilen aus der rechten Tabelle und diejenigen, die von links übereinstimmen, ein. Für die, die von rechts nicht übereinstimmen, wird NULL in den entsprechenden Spalten zurückgegeben.

Dies ist der Hauptunterschied zwischen einem SQL RIGHT JOIN und einem INNER JOIN. Während ein innerer Join nur die Zeilen zurückgibt, die der Join-Bedingung entsprechen, werden bei einem rechten äußeren Join garantiert alle Zeilen der rechten Tabelle in das Ergebnis aufgenommen.

Sehen Sie sich diese Abbildung an:

Sehen Sie sich die Ergebnisse für Fred an und stellen Sie fest, dass es kein passendes Produkt gibt, es ist NULL. Außerdem ist der nicht im Ergebnis enthalten.

Ein anderer Name für die rechte Verknüpfung ist Right outer join.

Die allgemeine Form des RIGHT JOIN ist:

SELECT table1.column1, table2.column2, … FROM table1 RIGHT JOIN table2 ON table1.commonColumn = table2.commonColumn 

Anmerkungen:

  • In diesem Beispiel ist Tabelle2 die rechte Tabelle und Tabelle1 die linke.
  • Wenn es keine Übereinstimmung zwischen den commonColumn-Werten gibt, gibt table1.column1 NULL zurück

SQL RIGHT JOIN Beispiel

Nicht jede Person in der AdventureWorks-Datenbank ist ein Mitarbeiter. Wir wollen alle Personen und einige ihrer Beschäftigungsdaten auflisten, sofern sie vorhanden sind. Dazu verwenden wir einen RIGHT JOIN.

Denken Sie daran, dass es sich um einen RIGHT JOIN handelt, da sich die Personentabelle, die alle Zeilen enthält, die wir zurückgeben möchten, auf der rechten Seite des JOIN-Operators befindet.

-Listen Sie alle Personen und alle Beschäftigungsdaten auf, sofern vorhanden. SELECT P.FirstName , P.LastName , E.HireDate , E.JobTitle FROM HumanResources.Employee AS E RIGHT JOIN Person.Person AS P ON P.BusinessEntityID = E.BusinessEntityID;
--List all People and any employment data, if it exists. --Use Outer Join to do so... SELECT P.FirstName , P.LastName , E.HireDate , E.JobTitle FROM HumanResources.Employee AS E RIGHT JOIN Person.Person AS P ON P.BusinessEntityID = E.BusinessEntityID; 

Sehen Sie sich die Ergebnisse an und stellen Sie fest, dass es für einige Personen NULL-Einträge gibt. Das liegt daran, dass es keine entsprechenden Einträge in der Tabelle Employee gibt. Der RIGHT JOIN funktioniert wie angekündigt und liefert alle Übereinstimmungen und eine NULL, wenn es keine gibt.

Wichtige Punkte:

Wenn Sie mit RIGHT JOINS arbeiten, denken Sie daran, dass Ihr Abgleich von einer Tabelle zur anderen mehrere Zeilen enthalten kann. Das bedeutet, dass Ihr Ergebnis mehr Zeilen enthalten kann, als Sie in den beiden Tabellen haben.

Wenn Spalten nicht übereinstimmen, wird die rechte Zeile abgefragt, und NULL für die Spalten der linken Tabelle.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.