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

Mysql:¿cómo seleccionar grupos que tienen ciertos valores?

Si no hay restricciones únicas, intente:

SELECT post_id 
FROM tags 
WHERE tag_id = 1 OR tag_id = 3 
GROUP BY post_id 
HAVING count(DISTINCT tag_id) = 2;

O usa este HAVING cláusula, si intenta detectar solo dos tag_id valores:

HAVING MIN(tag_id) <> MAX(tag_id)

Si post_id y tag_id tienen una restricción única, esto también debería funcionar:

SELECT post_id 
FROM tags 
WHERE tag_id = 1 OR tag_id = 3 
GROUP BY post_id 
HAVING count(*) = 2;