Heim > Datenbank > MySQL-Tutorial > Wie finde ich in einer Datenbank Autos, die alle Tests (A, B, C, D) bestanden haben?

Wie finde ich in einer Datenbank Autos, die alle Tests (A, B, C, D) bestanden haben?

Mary-Kate Olsen
Freigeben: 2025-01-14 10:35:46
Original
843 Leute haben es durchsucht

How to Find Cars That Passed All Tests (A, B, C, D) in a Database?

Zeilengruppen filtern, die allen Elementen in der Liste entsprechen

Angenommen, es gibt zwei Tabellen:

  • Autos: Listen Sie Autos und die entsprechenden Modelle auf.
  • bestandener Test: Zeichnet den bestandenen Test jedes Fahrzeugs auf, einschließlich seiner eindeutigen ID, des Fahrzeugnamens, des Testtyps und des Datums.

Frage:

Wie erkennt man Autos, die alle Tests (A, B, C, D) bestanden haben, anhand der Tabelle Test bestanden?

Einschränkungen der IN-Anweisung:

Die Verwendung einer IN-Anweisung zum Abgleichen von Zeilen mit einer Liste von Tests kann dazu führen, dass Autos zurückgegeben werden, die nur eine Teilmenge dieser Tests bestehen.

Lösung: Verschiedene Testtypen gruppieren und zählen

Diese Lösung verwendet COUNT() und die HAVING-Klausel:

<code class="language-sql">SELECT carname
FROM PassedTest
GROUP BY carname
HAVING COUNT(DISTINCT testtype) = 4;</code>
Nach dem Login kopieren

Diese Abfrage gruppiert Zeilen nach Autonamen und zählt die Anzahl der unterschiedlichen Testtypwerte. Ein Auto mit einem Wert von 4 hat alle vier Tests bestanden.

Zusätzliche Tipps:

Um Daten aus der Tabelle cars basierend auf dem Ergebnissatz abzurufen, verwenden Sie diese erweiterte Abfrage:

<code class="language-sql">SELECT *
FROM cars
WHERE carname IN (
    SELECT carname
    FROM PassedTest
    GROUP BY carname
    HAVING COUNT(DISTINCT testtype) = 4
);</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie finde ich in einer Datenbank Autos, die alle Tests (A, B, C, D) bestanden haben?. 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