Zusammenfassung :In diesem Tutorial lernen Sie, wie Sie SQLite LEFT JOIN
verwenden -Klausel zum Abfragen von Daten aus mehreren Tabellen.
Einführung in SQLite LEFT JOIN
Klausel
Ähnlich dem INNER JOIN
-Klausel, der LEFT JOIN
-Klausel ist eine optionale Klausel von SELECT
Erklärung. Sie verwenden den LEFT JOIN
-Klausel zum Abfragen von Daten aus mehreren verknüpften Tabellen.
Angenommen, wir haben zwei Tabellen:A und B.
- A hat m- und f-Spalten.
- B hat n und f Spalten.
Verbindung zwischen A und B mit LEFT JOIN
durchführen -Klausel verwenden Sie die folgende Anweisung:
SELECT
a,
b
FROM
A
LEFT JOIN B ON A.f = B.f
WHERE search_condition;
Code language: SQL (Structured Query Language) (sql)
Der Ausdruck A.f = B.f
ist ein bedingter Ausdruck. Neben dem Gleichheitsoperator (=) können Sie andere Vergleichsoperatoren verwenden, wie z. B. größer als (>), kleiner als (<) usw.
Die Anweisung gibt eine Ergebnismenge zurück, die Folgendes enthält:
- Zeilen in Tabelle A (linke Tabelle), die entsprechende Zeilen in Tabelle B haben.
- Zeilen in Tabelle A und die Zeilen in Tabelle B mit
NULL
gefüllt Werte, falls die Zeile aus Tabelle A keine entsprechenden Zeilen in Tabelle B hat.
Mit anderen Worten, alle Zeilen in Tabelle A werden in die Ergebnismenge aufgenommen, unabhängig davon, ob es übereinstimmende Zeilen in Tabelle B gibt oder nicht.
Falls Sie ein WHERE
haben -Klausel in der Anweisung, die search_condition
im WHERE
-Klausel wird nach dem Abgleich des LEFT JOIN
angewendet Klausel vervollständigt.
Siehe die folgende Abbildung des LEFT JOIN
Klausel zwischen den A- und B-Tabellen.
Alle Zeilen in Tabelle A sind in der Ergebnismenge enthalten.
Denn die zweite Zeile (a2,2)
hat keine entsprechende Zeile in Tabelle B, den LEFT JOIN
-Klausel erstellt eine falsche Zeile gefüllt mit NULL
.
Das folgende Venn-Diagramm veranschaulicht den LEFT JOIN
Klausel.
Es wird darauf hingewiesen, dass LEFT OUTER JOIN
ist dasselbe wie LEFT JOIN
.
SQLite LEFT JOIN
Beispiele
Wir verwenden die artists
und albums
Tabellen in der Beispieldatenbank zur Demonstration.
Ein Album gehört einem Künstler. Ein Künstler kann jedoch null oder mehr Alben haben.
Um Künstler zu finden, die keine Alben haben, verwenden Sie den LEFT JOIN
Klausel wählen wir Künstler und ihre entsprechenden Alben aus. Wenn ein Künstler keine Alben hat, der Wert von AlbumId
Spalte ist NULL.
Um zuerst die Künstler anzuzeigen, die keine Alben haben, haben wir zwei Möglichkeiten:
- Verwenden Sie zuerst
ORDER BY
-Klausel, um die Zeilen aufzulisten, derenAlbumId
istNULL
Werte zuerst. - Zweitens verwenden Sie
WHERE
-Klausel undIS NULL
Operator, um nur Künstler aufzulisten, die keine Alben haben.
Die folgende Anweisung verwendet den LEFT JOIN
-Klausel mit dem ORDER BY
Klausel.
SELECT
artists.ArtistId,
AlbumId
FROM
artists
LEFT JOIN albums ON
albums.ArtistId = artists.ArtistId
ORDER BY
AlbumId;
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Die folgende Anweisung verwendet den LEFT JOIN
-Klausel mit dem WHERE
Klausel.
SELECT
artists.ArtistId
, AlbumId
FROM
artists
LEFT JOIN albums ON
albums.ArtistId = artists.ArtistId
WHERE
AlbumId IS NULL;
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
In diesem Tutorial haben Sie gelernt, wie Sie SQLite LEFT JOIN
verwenden -Klausel zum Abfragen von Daten aus mehreren Tabellen.