SQL查询未显示预期结果

时间:2011-07-10 16:21:00

标签: mysql sql integration

所以即时创建一个集成脚本,但由于某种原因它没有显示已经过的结果。 我的问题是

SELECT xf_user_group_relation.user_id, xf_user_group_relation.user_group_id, MAX( xf_user_group.display_style_priority ) AS display_style_priority
FROM xf_user_group_relation
INNER JOIN xf_user_group ON xf_user_group_relation.user_group_id = xf_user_group.user_group_id
WHERE xf_user_group.display_style_priority >=1000
GROUP BY user_id

结果中出现意外的一行是

user_id | user_group_id | display_style_priority    
86 | 11 |5200

ID为11的组具有display_style_priority 2000而不是5200.它应该使用display_style_priority 5200显示用户组ID。 这是该用户所在的排名最高的群组。 有人可以指出我做错了什么。

1 个答案:

答案 0 :(得分:4)

尝试将GROUP BY更改为

GROUP BY
   xf_user_group_relation.user_id, xf_user_group_relation.user_group_id

大多数其他DBMS会为该查询抛出错误,因为SELECT列表中的每一列都必须聚合或在GROUP BY中。

编辑:这是ANSI-SQL和其他RDBMS不允许这种语法

的一个很好的例子