Heim > Datenbank > MySQL-Tutorial > Wie überprüfe ich, ob eine MySQL-Spalte alle Werte einer anderen Spalte enthält?

Wie überprüfe ich, ob eine MySQL-Spalte alle Werte einer anderen Spalte enthält?

Susan Sarandon
Freigeben: 2024-12-29 22:16:37
Original
338 Leute haben es durchsucht

How to Check if a MySQL Column Contains All Values from Another Column?

Überprüfen Sie, ob eine Spalte ALLE Werte einer anderen Spalte in einer MySQL-Datenbank enthält

Betrachten Sie zwei Tabellen, T1 und T2, mit Folgendem Strukturen:

T1:

personID stuffID
1 1
1 2
1 3
1 4
2 1
2 4
3 1
3 2

T2:

stuffID
1
2
3

Ziel ist es, alle personID-Werte abzurufen aus T1, die jedem stuffID-Wert in T2 zugeordnet sind. Für dieses Beispiel wäre das Ergebnis 1, da nur personID 1 Datensätze für alle drei in T2 vorhandenen stuffIDs hat.

Lösung:

Um dies zu erreichen, können wir verwenden ein zweistufiger Prozess:

Schritt 1: Übereinstimmung identifizieren Datensätze

SELECT personID
FROM T1
WHERE stuffID IN (SELECT stuffID FROM T2)
Nach dem Login kopieren

Diese Unterabfrage ruft alle PersonID-Werte aus T1 ab, die mindestens eine passende StuffID in T2 haben.

Schritt 2: Auf Vollständigkeit prüfen

GROUP BY personID
HAVING COUNT(DISTINCT stuffID) = (SELECT COUNT(stuffID) FROM T2)
Nach dem Login kopieren

Dieser Teil gruppiert die Ergebnisse aus Schritt 1 nach Personen-ID und prüft, ob die Anzahl der unterschiedlichen StuffID-Werte für jede Gruppe vorhanden ist ist gleich der Anzahl der stuffID-Werte in T2. Wenn ja, bedeutet dies, dass personID mit allen stuffID-Werten aus T2 verknüpft ist.

Abschließende Abfrage:

In Kombination beider Schritte wird mit der letzten Abfrage überprüft, ob eine Spalte enthält Alle Werte einer anderen Spalte in MySQL sind:

SELECT personID
FROM T1
WHERE stuffID IN (SELECT stuffID FROM T2)
GROUP BY personID
HAVING COUNT(DISTINCT stuffID) = (SELECT COUNT(stuffID) FROM T2)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie überprüfe ich, ob eine MySQL-Spalte alle Werte einer anderen Spalte enthält?. 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