首页 > 解决方案 > 如何编写以下 SQL 查询来查找带有所需标签的内容?

问题描述

contents table
|id|content|
|1|content1|
|2|content2|
|3|content3|
tags table
|id|tag|
|1|tag1|
|2|tag2|
|3|tag3|
content_tags table
|content_id|tag_id|
|1|1|
|1|2|
|1|3|
|2|1|
|3|1|

现在我想查找同时具有 tag2 和 tag3 的内容。如何编写此 SQL 查询?

标签: sql

解决方案


尝试如下

  select content_id
  from content_tags  join tags on tag_id=id
  where tags in ('tag1','tag2')
  group by content_id
  having count(distinct tags)=2

推荐阅读