Per verificare se un titolo ha ENTRAMBI 'categoria1' e 'categoria2', puoi utilizzare la seguente query SQL:
SELECT title
FROM post
JOIN tag ON post.post_id = tag.post_id
WHERE tag.tag_id IN (SELECT tag_id FROM tag WHERE tag = 'category1')
AND tag.tag = 'category2';
Per verificare la presenza di altre categorie basta ripetere la clausola WHERE:
SELECT title
FROM post
JOIN tag ON post.post_id = tag.post_id
WHERE tag.tag_id IN (SELECT tag_id FROM tag WHERE tag = 'category1')
AND tag.tag_id IN (SELECT tag_id FROM tag WHERE tag = 'category2')
AND tag.tag = 'category3';
Ciò restituirebbe risultati per i titoli che hanno tutte e 3 le categorie.