Ако няма уникални ограничения, опитайте:
SELECT post_id
FROM tags
WHERE tag_id = 1 OR tag_id = 3
GROUP BY post_id
HAVING count(DISTINCT tag_id) = 2;
Или използвайте този HAVING
клауза, ако се опитвате да откриете само два tag_id
стойности:
HAVING MIN(tag_id) <> MAX(tag_id)
Ако и post_id, и tag_id имат уникално ограничение, това също трябва да работи:
SELECT post_id
FROM tags
WHERE tag_id = 1 OR tag_id = 3
GROUP BY post_id
HAVING count(*) = 2;