Autos filtern, die alle Tests erfolgreich abgeschlossen haben
Die effiziente Identifizierung von Fahrzeugen, die alle erforderlichen Tests aus einer bestimmten Liste bestanden haben, erfordert eine ausgefeiltere Methode als einfache IN
Bedienerprüfungen, insbesondere wenn es um mehrere Tests geht. Ein genauerer Ansatz nutzt die Leistungsfähigkeit der Klauseln GROUP BY
und HAVING
.
Erwägen Sie diese SQL-Abfrage, um Autos auszuwählen, die jeden Test in einem vordefinierten Satz bestanden haben:
<code class="language-sql">SELECT carname FROM PassedTest GROUP BY carname HAVING COUNT(DISTINCT testtype) = 4</code>
Diese Abfrage gruppiert Ergebnisse nach carname
und verwendet die HAVING
-Klausel mit COUNT(DISTINCT testtype)
. Dadurch wird sichergestellt, dass nur Autos, die vier verschiedene Testtypen bestanden haben (vorausgesetzt, dass vier Tests in der Liste enthalten sind), in die Ausgabe einbezogen werden.
Um ein umfassenderes Ergebnis zu erzielen, ermöglicht die Einbindung als Unterabfrage in die cars
-Tabelle den Abruf zusätzlicher Fahrzeugdetails:
<code class="language-sql">SELECT * FROM cars WHERE carname IN ( SELECT carname FROM PassedTest GROUP BY carname HAVING COUNT(DISTINCT testtype) = 4 )</code>
Diese verbesserte Abfrage bietet eine präzise und vollständige Auswahl von Fahrzeugen, die alle Tests in der definierten Liste erfolgreich bestanden haben.
Das obige ist der detaillierte Inhalt vonWie wähle ich in einer Liste Autos aus, die alle Tests bestanden haben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!