分组在MySQL中查询无法正常工作

时间:2012-02-10 13:11:42

标签: mysql group-by

我进行查询以查找来自三个不同表格的最后24个结果。

查询是:

SELECT m.MovID,m.Type,m.Image,m.Date,t.SerID,t.Type,t.Image,t.Date,g.GamID,g.Type,g.Image,g.Date
FROM movie m, tvseries t, games g
GROUP BY m.MovID, t.SerID, g.GamID
LIMIT  0,24

但是在此查询的结果中 group by 无效。

3 个答案:

答案 0 :(得分:1)

SELECT中显示的所有列都应该:

  1. 也出现在陈述的GROUP BY部分或
  2. 由某些汇总函数计算,例如SUMAVG等。

答案 1 :(得分:1)

没有关于您的查询有什么问题的更多信息或您期望Vs的结果。您收到的内容,我认为您应该在m.MovID中添加SELECT。最佳做法是GROUP BYSELECT以及SELECTGROUP BY的内容。

答案 2 :(得分:1)

GROUP BY不是问题(至少不是主要问题)。

真正的问题是您从3个表中选择数据而不加入它们。这部分查询:

from   movie m
       , tvseries t
       , games g 

表示第一个表的每一行与第二个表的每一行的所有组合以及第三个表的每一行。这就是你想要的吗?

FROM   movie m
  CROSS JOIN  tvseries t
  CROSS JOIN  games g 

很可能你想要JOIN 3个表:

FROM   movie m
  INNER JOIN  tvseries t
    ON  t.someColumn = m.someColumn 
  INNER JOIN  games g 
    ON  g.someOtherColumn = m.someOtherColumn