


Comment sélectionner les voitures qui ont réussi tous les tests dans une table de base de données ?
Requête de base de données : identification des voitures qui réussissent tous les tests
Ce guide montre comment sélectionner efficacement les voitures à partir d'une base de données qui ont réussi un ensemble de tests prédéfinis. Nous allons nous concentrer sur un scénario dans lequel nous devons identifier les voitures dans le tableau passedtest
qui ont réussi tous les tests (A, B, C et D).
Limitations de la IN
Déclaration
Bien que l'instruction IN
soit utile pour vérifier si une valeur existe dans une liste, elle n'est pas adaptée à cette tâche spécifique. L'utilisation de IN
identifierait de manière incorrecte les voitures qui ont réussi ne serait-ce qu'un des tests requis. Une approche plus robuste est nécessaire.
Tirer parti de l'agrégation et du regroupement
La solution réside dans l'utilisation de fonctions d'agrégation et de regroupement. Nous utilisons la fonction COUNT()
pour déterminer le nombre de types de tests distincts réussis par chaque voiture. La clause GROUP BY
organise ensuite les résultats par nom de voiture, nous permettant de compter des tests distincts par voiture.
Filtrage des résultats avec HAVING
La clause HAVING
est cruciale pour filtrer les résultats groupés. Cela nous permet d'isoler les voitures qui ont un nombre de types de tests distincts égal au nombre total de tests requis (quatre, dans ce cas).
La solution SQL
La requête SQL suivante permet d'obtenir le résultat souhaité :
SELECT carname FROM PassedTest GROUP BY carname HAVING COUNT(DISTINCT testtype) = 4;
Cette requête sélectionne efficacement uniquement les carname
de la table passedtest
qui ont réussi les quatre tests spécifiés.
Élargissement de la requête pour des données complètes
Pour récupérer des détails supplémentaires sur les voitures qui ont réussi tous les tests, une requête imbriquée peut être utilisée :
SELECT * FROM cars WHERE carname IN ( SELECT carname FROM PassedTest GROUP BY carname HAVING COUNT(DISTINCT testtype) = 4 );
Cette requête améliorée récupère toutes les colonnes de la table cars
pour les voitures identifiées comme ayant réussi tous les tests dans la table passedtest
.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Quels sont les outils de GUI MySQL populaires (par exemple, MySQL Workbench, PhpMyAdmin)?

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?
