sql - 如何编写以下 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 查询?
解决方案
尝试如下
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
推荐阅读
- java - BigInteger 非不变的替代方案/解决方法
- sql - 在oracle查询中将多个部分列转换为一行
- firebase - Firestore 规则:检查删除了哪个数组元素
- ms-access - 如何在 Access 中的字符串中找到确切的单词?例如课程名称中的“介绍”一词?
- php - 使用条件语句按祖父母 ID 一次读取一条记录
- python - PyQT Fusion 样式删除了可检查组合框中的复选框
- rust - 替换 Rust 中的值导致“无法移出借来的内容”
- vb.net - vb.net 传递一个值,该值将告诉函数使用它的默认值
- r - 如何数值计算R中的渐近线?
- php - 更新到 symfony 4.1 时的两个因素身份验证错误