Was sind die Unterschiede zwischen LEFT JOIN und RIGHT JOIN in SQL?
sobes.tech KI
Antwort von AI
LEFT JOIN gibt alle Zeilen aus der linken (ersten) Tabelle und die entsprechenden Zeilen aus der rechten (zweiten) Tabelle zurück. Wenn keine Übereinstimmungen in der rechten Tabelle vorhanden sind, enthält das Ergebnis NULL für die Spalten der rechten Tabelle.
RIGHT JOIN gibt alle Zeilen aus der rechten (zweiten) Tabelle und die entsprechenden Zeilen aus der linken (ersten) Tabelle zurück. Wenn keine Übereinstimmungen in der linken Tabelle vorhanden sind, enthält das Ergebnis NULL für die Spalten der linken Tabelle.
Der Hauptunterschied besteht darin, welche Tabelle als "vollständig" betrachtet wird, also aus welcher Tabelle alle Zeilen zurückgegeben werden, unabhängig davon, ob es Übereinstimmungen in der anderen Tabelle gibt.
Beispiel in SQL:
Tabelle TabelleA:
| ID | WertA |
|---|---|
| 1 | A1 |
| 2 | A2 |
| 3 | A3 |
Tabelle TabelleB:
| ID | WertB |
|---|---|
| 2 | B2 |
| 3 | B3 |
| 4 | B4 |
LEFT JOIN:
SELECT *
FROM TabelleA
LEFT JOIN TabelleB ON TabelleA.ID = TabelleB.ID;
Ergebnis des LEFT JOIN:
| ID (aus TabelleA) | WertA | ID (aus TabelleB) | WertB |
|---|---|---|---|
| 1 | A1 | NULL | NULL |
| 2 | A2 | 2 | B2 |
| 3 | A3 | 3 | B3 |
RIGHT JOIN:
SELECT *
FROM TabelleA
RIGHT JOIN TabelleB ON TabelleA.ID = TabelleB.ID;
Ergebnis des RIGHT JOIN:
| ID (aus TabelleA) | WertA | ID (aus TabelleB) | WertB |
|---|---|---|---|
| 2 | A2 | 2 | B2 |
| 3 | A3 | 3 | B3 |
| NULL | NULL | 4 | B4 |
LEFT JOIN und RIGHT JOIN sind oft austauschbar, indem die Reihenfolge der Tabellen in der Abfrage geändert wird: A LEFT JOIN B ist äquivalent zu B RIGHT JOIN A.