Mysql SQL选择多行匹配的非不同值
我有一个用于许多关系的连接表,看起来像这样: 图像标签:Mysql SQL选择多行匹配的非不同值,mysql,sql,Mysql,Sql,我有一个用于许多关系的连接表,看起来像这样: 图像标签: Image_ID |. Tag_ID 4 | 5 4. | 6 4 | 7 5 | 6 5 | 7 我想创建一个SQL查询来选择满足多个标记ID要求的图像ID。例如,我想查找所有同时具有标记ID 5和6的图像ID,返回图像4,但不返回图像5。我该怎么做呢?您可以使用group by并拥有:
Image_ID |. Tag_ID
4 | 5
4. | 6
4 | 7
5 | 6
5 | 7
我想创建一个SQL查询来选择满足多个标记ID要求的图像ID。例如,我想查找所有同时具有标记ID 5和6的图像ID,返回图像4,但不返回图像5。我该怎么做呢?您可以使用group by并拥有:
你好这显然是重复的。而且没有显示出任何研究成果&作为一个明显的常见问题,它没有任何用处。请总是用谷歌搜索错误信息,对你的问题/问题/目标的许多清晰、简洁和具体的版本/措辞,有或没有你的特定字符串/名称,以及“site:stackoverflow.com”&标记并阅读许多答案。将发现的相关关键字添加到搜索中。如果你找不到答案,就发布,使用1个变体搜索作为标签的标题和关键字。请参见文本上方的向下投票箭头鼠标。当你有一个不重复的代码问题要发布时,请阅读并采取行动。你为什么用关系代数标记?
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