Jika tidak ada batasan unik, coba:
SELECT post_id
FROM tags
WHERE tag_id = 1 OR tag_id = 3
GROUP BY post_id
HAVING count(DISTINCT tag_id) = 2;
Atau gunakan HAVING
klausa, jika mencoba mendeteksi hanya dua tag_id
nilai:
HAVING MIN(tag_id) <> MAX(tag_id)
Jika post_id dan tag_id keduanya memiliki batasan unik, ini juga akan berfungsi:
SELECT post_id
FROM tags
WHERE tag_id = 1 OR tag_id = 3
GROUP BY post_id
HAVING count(*) = 2;