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;