仅按特定行显示所有数据组:从表组中选择*,具有列='值'

时间:2014-11-01 20:10:41

标签: mysql sql phpmyadmin

我使用mysql。我的表看起来像这样:

my table

最后我尝试使用此查询

SELECT * FROM movie GROUP BY `group`  HAVING cateogry = 'TV'

我希望将此查询结果显示为:show all all GROUP BY TV类别,其中category =' TV'

我想要这个结果 enter image description here

但是我的查询给了我这个结果(将查询工作视为WHERE clouse)

enter image description here

如果我使用此QUERY

SELECT * FROM movie GROUP BY `group`

它给我这个结果

enter image description here

我想要 - > QUERY - > GROUP BY group(ID号9和ID 1,2,3视为不同的组名)

  

如果group具有所有相同的值,但是category ='电影' (返回所有行程   分组不适用)

     

如果group具有所有相同的值,但是category =' TV' (通过APPLY返回1行组)

3 个答案:

答案 0 :(得分:3)

您似乎想要此查询:

select m.*
from movie m join
     (select `group`, min(id) as minid
      from movie
      group by `group`
     ) g
     on m.id = g.minid;

答案 1 :(得分:1)

SELECT min(ID) as ID, min(Name), `group`, Category
FROM movie
GROUP BY `group`, Category
ORDER BY ID

答案 2 :(得分:0)

您尝试过以下吗?我觉得你很亲密。就像您将“小组”分组时一样。您还将分组类别为电影的那个。因此,您只需要创建一个单独的组类别。

SELECT * FROM movie
WHERE group = 't'
GROUP BY group, Category
ORDER BY ID
相关问题