Е, това е най-доброто, за което се сещам в 4:30 сутринта:
SELECT distinct tag_id FROM
(SELECT pt1.post_id FROM pt1
INNER JOIN tags t1 ON (pt1.tag_id = t1.id)
WHERE t1.id IN (1, 2)
GROUP BY pt1.post_id
HAVING COUNT(DISTINCT t1.id) = 2) MatchingPosts
INNER JOIN pt2 ON (MatchingPosts.post_id = pt2.post_id)
WHERE (pt2.tag_id NOT IN (1, 2))
(1, 2) са етикетите, които търсите и броят, разбира се, ще трябва да съответства на количеството маркери, които използвате за филтриране.
Ето един пример (Забележете, че леко промених данните)