是否有更简单的方法来执行此查询

时间:2014-09-25 08:43:17

标签: mysql sql

这是查询(MySQL语法):

select
  id_image
from
  (
    select
        id_image
      , count(id_image) as nb
    from
      data
    group by
      id_image
  ) temp_table
where
  nb = (select count(distinct id_group) from data)
  • data是一个包含3列的表:int id_user,int id_group和int id_image
  • 行(x,y,z)表示:
    • 图像z位于图像组y
    • 组y由用户x
    • 创建

我们想要列出每个图像组中存在的所有图像。感谢。

2 个答案:

答案 0 :(得分:0)

您正在选择数据中出现的所有图像ID,因为该表中有不同的组ID吗?这看起来很奇怪。

无论如何,查询可以重写为:

select id_image
from data 
group by id_image
having count(*) = (select count(distinct id_group) from data);

答案 1 :(得分:0)

试试这个怎么样:

从id_group中的数据中选择id_group,id_image(从数据中选择不同的id_group);