Para verificar si un título tiene AMBOS 'categoría1' y 'categoría2', puede usar la siguiente consulta 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';
Para verificar otras categorías, simplemente repita la cláusula 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';
Esto arrojaría resultados para títulos que tienen las 3 categorías.