ブログのソフトウェアに類似したWebアプリケーションを作成しています。 複数のカテゴリに属する投稿を選択するSQLクエリ
以下のように3つのテーブルがありますが、私は、タグのすべての "特定のセットを持っている投稿を返しますSQLクエリを概念化することが困難です。
ブログのソフトウェアに類似したWebアプリケーションを作成しています。 複数のカテゴリに属する投稿を選択するSQLクエリ
以下のように3つのテーブルがありますが、私は、タグのすべての "特定のセットを持っている投稿を返しますSQLクエリを概念化することが困難です。
GROUP BY
およびCOUNT
またはダブルNOT EXISTS
を使用してください。
最初のアプローチの例があります。
SELECT pt.Post_id, p.Post_Text
FROM Post_Tags pt
JOIN Posts p ON p.Post_id = pt.Post_id
WHERE pt.Tag_id IN (1,2,3)
GROUP BY pt.Post_id
HAVING COUNT(DISTINCT pt.Tag_id) = 3
この試してみてください:あなたは、複数のタグ名を持っている場合は、「、( 'TAG1' 内のタグ名とタグ名= @youtagehereを置き換えると一致するようにしようとしている
select * from posts where post_id in
(select post_id from post_tags pt join tags t on pt.tag_id = t.tag_id where tag_name = @yourtaghere)
か...
select
p.*
from
posts p join
post_tags pt on p.post_id = pt.post_id join
tags t on t.tag_id = pt.tag_id
where
t.tag_name = @yourtaghere
を「tag2」、「tag3」など)