我仍然在尝试学习更复杂的SQL查询,并且发现很难返回我想要的结果。
用户将输入一个或多个关键字,查询将根据通过关键字设置的限制返回主题:
示例DB: 表:
keywords
-------
keyword_id
keyword
topics
-------
topic_id
topic_other_stuff
topics_keywords
-------
tk_id
topic_id
keyword_id
每个topic_id都可以附加多个关键字。
如果用户输入了2个或更多关键字,我试图通过topics_keywords表获取一个只返回附加了两个关键字的主题的查询。
任何帮助将不胜感激!
谢谢!
答案 0 :(得分: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