基于AND返回基于标记数据库的不同SQL查询

时间:2012-11-08 18:57:22

标签: mysql

我仍然在尝试学习更复杂的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表获取一个只返回附加了两个关键字的主题的查询。

任何帮助将不胜感激!

谢谢!

1 个答案:

答案 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