मुझे लगता है कि आप डेटाबेस को दो अनुरोध भेजकर खुश हैं।
सबसे पहले, दिए गए टैग के लिए सभी पोस्ट प्राप्त करें:
SELECT * FROM blog_posts bp
WHERE EXISTS (SELECT * FROM blog_tags bt INNER JOIN
tags t ON t.id = bt.tag_id
WHERE bp.id = bt.post_id
AND t.tag = @SearchTag)
दूसरा, आप टैग करना चाहते हैं, मुझे लगता है, जिसे आप पोस्ट के माध्यम से ढूंढ रहे हैं उससे जुड़ा हुआ है:
SELECT * FROM tags t
WHERE EXISTS ( -- Here we link two tags via blog_tags
SELECT * FROM blog_tags bt1 INNER JOIN
blog_tags bt2 ON bt1.post_id = bt2.post_id
AND bt1.tag_id != bt2.tag_id INNER JOIN
tags t ON t.id = bt1.tag_id
WHERE t.tag = @SearchTag
AND t.id = bt2.tag_id
)