0

私はまだより複雑なSQLクエリを学習しようとしていて、希望する結果を返すのが難しいと感じています。

ユーザーは1つ以上のキーワードを入力し、クエリはキーワードを通じて設定された制限に基づいてトピックを返します。

DBの例:テーブル:

keywords
-------
keyword_id
keyword  


topics
-------
topic_id
topic_other_stuff  

topics_keywords
-------
tk_id
topic_id
keyword_id

各topic_idには、複数のキーワードを付加できます。

ユーザーが2つ以上のキーワードを入力した場合、topics_keywordsテーブルを介して両方のキーワードが関連付けられているトピックのみを返すクエリを取得しようとしています。

どんな助けでもいただければ幸いです!

ありがとう!

4

1 に答える 1

1
select t.topic_id
from topics_keywords t
inner join keywords k on t.keyword_id = k.keyword_id
where k.keyword in ('keyword1', 'keyword2')
group by t.topic_id
having count(distinct k.keyword_id) = 2
于 2012-11-08T19:02:18.503 に答える