Maison > base de données > tutoriel mysql > Comment vérifier si une colonne MySQL contient toutes les valeurs d'une autre colonne ?

Comment vérifier si une colonne MySQL contient toutes les valeurs d'une autre colonne ?

Susan Sarandon
Libérer: 2024-12-29 22:16:37
original
337 Les gens l'ont consulté

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

Vérifier si une colonne contient TOUTES les valeurs d'une autre colonne dans une base de données MySQL

Considérons deux tables, T1 et T2, avec ce qui suit structures :

T1 :

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

T2 :

stuffID
1
2
3

Le but est de récupérer toutes les valeurs personID de T1 qui sont associés à chaque valeur stuffID dans T2. Pour cet exemple, le résultat serait 1 car seul personID 1 possède des enregistrements pour les trois stuffID présents dans T2.

Solution :

Pour y parvenir, nous pouvons utiliser un processus en deux étapes :

Étape 1 : Identifier la correspondance records

SELECT personID
FROM T1
WHERE stuffID IN (SELECT stuffID FROM T2)
Copier après la connexion

Cette sous-requête récupère toutes les valeurs personID de T1 qui ont au moins un stuffID correspondant dans T2.

Étape 2 : Vérifier l'exhaustivité

GROUP BY personID
HAVING COUNT(DISTINCT stuffID) = (SELECT COUNT(stuffID) FROM T2)
Copier après la connexion

Cette partie regroupe les résultats de l'étape 1 par personID et vérifie si le nombre de valeurs stuffID distinctes pour chacun group est égal au nombre de valeurs stuffID dans T2. Si tel est le cas, cela indique que personID est associé à toutes les valeurs stuffID de T2.

Requête finale :

En combinant les deux étapes, la requête finale pour vérifier si une colonne contient toutes les valeurs d'une autre colonne dans MySQL sont :

SELECT personID
FROM T1
WHERE stuffID IN (SELECT stuffID FROM T2)
GROUP BY personID
HAVING COUNT(DISTINCT stuffID) = (SELECT COUNT(stuffID) FROM T2)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal