Maison >base de données >tutoriel mysql >Comment sélectionner les voitures qui ont réussi tous les tests dans une liste ?

Comment sélectionner les voitures qui ont réussi tous les tests dans une liste ?

DDD
DDDoriginal
2025-01-14 11:13:44852parcourir

How to Select Cars That Have Passed All Tests in a List?

Filtrer les voitures qui ont réussi tous les tests

Identifier efficacement les voitures qui ont réussi tous les tests requis à partir d'une liste donnée nécessite une méthode plus sophistiquée que les simples IN contrôles des opérateurs, en particulier lorsqu'il s'agit de tests multiples. Une approche plus précise exploite la puissance des clauses GROUP BY et HAVING.

Considérez cette requête SQL pour sélectionner les voitures qui ont réussi tous les tests dans un ensemble prédéfini :

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

Cette requête regroupe les résultats par carname et utilise la clause HAVING avec COUNT(DISTINCT testtype). Cela garantit que seules les voitures ayant réussi quatre types de tests distincts (en supposant que quatre tests figurent dans la liste) sont incluses dans le résultat.

Pour un résultat plus complet, l'intégrer en tant que sous-requête avec la table cars permet de récupérer des détails supplémentaires sur la voiture :

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

Cette requête améliorée propose une sélection précise et complète des voitures ayant réussi tous les tests de la liste définie.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn