SQL:IN 语句等效于逻辑 AND

  • 本文关键字:于逻辑 AND 语句 IN SQL sql
  • 更新时间 :
  • 英文 :


我目前使用的软件在SQL表中的对象和标签之间存在关系,如下所示:

+-----------+--------+
| object_id | tag_id |
+-----------+--------+
|       226 |     31 |
|       226 |     35 |
|       313 |     31 |
|       312 |     35 |
+-----------+--------+

对于以下请求,可以使用逻辑 OR 获取标签 ID 列表的所有对象 ID:

select distinct object_id from tags_link where tag_id in (31, 35);

如何获取具有逻辑 AND 的标签 ID 列表的所有对象 ID?

对于上表,对标记 ID 31 和 35 的请求应仅返回object_id 226。

select object_id
from tags_link
where tag_id in (31,35)
group by object_id
having count(distinct tag_id) = 2
select   object_id from tags_link where tag_id = 31
intersect
select   object_id from tags_link where tag_id = 35

最新更新