多行匹配的SQL SELECT非唯一值

时间:2018-11-26 03:17:27

标签: mysql sql

我有一个用于很多关系的连接表,看起来像这样:

图片标签:

Image_ID    |.    Tag_ID
4           |     5
4.          |     6
4           |     7
5           |     6
5           |     7

我想创建一个SQL查询来选择满足多个Tag_ID要求的Image_ID。例如,我要查找所有同时具有Tag_ID 5和6的Image_ID,返回图像4但不返回图像5。

1 个答案:

答案 0 :(得分:2)

您可以使用group byhaving

select image_id
from image_tags
where tag_id in (5, 6)
group by image_id
having count(*) = 2;  -- "2" is the number of tags in the IN list