Heim > Datenbank > MySQL-Tutorial > Wie kann ein LEFT JOIN in SQL Daten identifizieren, die in einer Tabelle vorhanden sind, in einer anderen jedoch nicht?

Wie kann ein LEFT JOIN in SQL Daten identifizieren, die in einer Tabelle vorhanden sind, in einer anderen jedoch nicht?

Barbara Streisand
Freigeben: 2025-01-03 02:16:38
Original
516 Leute haben es durchsucht

How Can a LEFT JOIN in SQL Identify Data Existing in One Table But Not Another?

Suchen nicht vorhandener Daten mit LEFT JOIN

In SQL kann es erforderlich sein, zwei Tabellen zu vergleichen und Daten zu identifizieren, die in einer Tabelle vorhanden sind aber nicht das andere. Dieses Szenario tritt häufig bei der Suche nach fehlenden Datensätzen auf.

Beachten Sie die folgenden Tabellen:

TABELLE1

id name address
1 mm 123
2 nn 143

TABELLE2

name age
mm 6
oo 9

Ziel ist es, durch Vergleich die nicht vorhandenen Namen in TABELLE1 zu finden es mit TABELLE2. In diesem Fall ist die zweite Zeile in TABELLE1 mit dem Namen „nn“ in TABELLE2 nicht vorhanden.

Ein erster Versuch mit einem INNER JOIN:

SELECT w.*
FROM TABLE1 w
INNER JOIN TABLE2 v
ON w.name <> v.name
Nach dem Login kopieren

wird das gewünschte nicht abrufen Ergebnis, weil INNER JOIN nur Zeilen zurückgibt, bei denen es eine Übereinstimmung in beiden Tabellen gibt.

Die Lösung liegt in der Verwendung eines LEFT JOIN stattdessen:

SELECT w.*
FROM TABLE1 w
LEFT JOIN TABLE2 v ON w.name = v.name
WHERE ISNULL(v.name);
Nach dem Login kopieren

Der LEFT JOIN führt einen Outer Join durch, was bedeutet, dass er alle Zeilen aus der linken Tabelle (TABELLE1) zurückgibt, unabhängig davon, ob es eine passende Zeile in der rechten Tabelle (TABELLE2) gibt. Die ISNULL(v.name)-Bedingung sucht nach Zeilen in TABELLE1, in denen das entsprechende Namensfeld in TABELLE2 null ist, was darauf hinweist, dass der Name in TABELLE2 nicht vorhanden ist.

Die Ausgabe lautet:

id name address
2 nn 143

Diese Abfrage ruft erfolgreich die Zeile aus TABELLE1 mit dem nicht vorhandenen Namen „nn“ ab.

Das obige ist der detaillierte Inhalt vonWie kann ein LEFT JOIN in SQL Daten identifizieren, die in einer Tabelle vorhanden sind, in einer anderen jedoch nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage