Mysql
 sql >> Base de données >  >> RDS >> Mysql

vérifier si une colonne contient TOUTES les valeurs d'une autre colonne - Mysql

Si je comprends bien, vous voulez récupérer tous les personID de T1 qui ont tous les stuffID associés trouvés dans T2.

Vous pouvez décomposer cela comme suit :Tout d'abord, recherchez toutes les entrées T1 qui correspondent à une requête imbriquée

SELECT personID 
FROM T1 WHERE stuffID IN (SELECT stuffID FROM t2)

Vous devez maintenant vérifier laquelle des entrées de cet ensemble contient TOUS les stuffID que vous souhaitez

GROUP BY personID
HAVING COUNT(DISTINCT stuffID) = (SELECT COUNT(stuffID) FROM t2)

et assemblez le tout :

SELECT personID 
FROM T1 WHERE stuffID IN (SELECT stuffID FROM t2)
GROUP BY personID
HAVING COUNT(DISTINCT stuffID) = (SELECT COUNT(stuffID) FROM t2)

HTH.