Mysql 排除一个表中的重复值并返回剩余值
我有一张这样的桌子:Mysql 排除一个表中的重复值并返回剩余值,mysql,Mysql,我有一张这样的桌子: table: album_image(album_id, image_id) album_id image_id ---------------------------- 87 2326 87 2325 86 2325 85 5689 89 56 有两个相册id(比如87和86),我只想提取不在这两个相册中的图像id 例如,如果我有相册_id 87和86,它应该返回image
table: album_image(album_id, image_id)
album_id image_id
----------------------------
87 2326
87 2325
86 2325
85 5689
89 56
有两个相册id(比如87和86),我只想提取不在这两个相册中的图像id
例如,如果我有相册_id 87和86,它应该返回image_id:2326
如何执行查询?带有not in运算符的版本(mysql中不存在用于执行此操作的减号运算符):
select image_id from album_image where album_id not in (86, 87)
也可以使用外部连接。根据要求,我们需要查找相册id 86或87上的图像,但不能同时查找两者,这可以使用
分组方式和计数方式来完成
select
image_id from album_image
where album_id in (87,86)
group by image_id having count(*)=1 ;
图片_id 2326在相册87中。你的意思是它应该返回5689和56吗?你的问题不清楚。请解释逻辑。此解决方案返回两个表中的值My Error;-)在子选项中,我将“image\u id=8x”替换为“album\u id=8x”。在样本数据中,它应该返回两条记录。noap,在这个样本数据中,它应该返回一条记录:2326yeap,就是它。谢谢
select
image_id from album_image
where album_id in (87,86)
group by image_id having count(*)=1 ;