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

Mysql :comment sélectionner des groupes ayant certaines valeurs ?

S'il n'y a pas de contraintes uniques, essayez :

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

Ou utilisez ce HAVING clause, si vous essayez de détecter seulement deux tag_id valeurs :

HAVING MIN(tag_id) <> MAX(tag_id)

Si post_id et tag_id ont tous deux une contrainte unique, cela devrait également fonctionner :

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