0

我仍在尝试学习更复杂的 SQL 查询,并且发现很难返回我想要的结果。

用户将输入一个或多个关键字,查询将根据通过关键字设置的限制返回主题:

示例数据库:表:

keywords
-------
keyword_id
keyword  


topics
-------
topic_id
topic_other_stuff  

topics_keywords
-------
tk_id
topic_id
keyword_id

每个 topic_id 可以附加多个关键字。

如果用户输入 2 个或更多关键字,我将尝试获取一个查询,该查询仅返回通过 topic_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 回答