sql >> Base de Datos >  >> RDS >> Mysql

verificar si una columna contiene TODOS los valores de otra columna - Mysql

Si entiendo correctamente, desea recuperar todos los ID de persona de T1 que tienen todos los ID de cosas asociados encontrados en T2.

Puede dividir esto de la siguiente manera:en primer lugar, busque todas las entradas T1 que coincidan con una consulta anidada

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

Ahora debe verificar cuál de las entradas en este conjunto contiene TODOS los ID de cosas que desea

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

y ponerlo todo junto:

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

HH.