所以我创建了一个集成脚本,但是由于某种原因它没有显示出正确的结果。我的查询是
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。这是该用户所在的排名最高的组。有人可以指出我做错了什么。
尝试将GROUP BY更改为
GROUP BY xf_user_group_relation.user_id, xf_user_group_relation.user_group_id
其他大多数DBMS都会对该查询抛出错误,因为SELECT列表中的每一列都必须聚合或在GROUP BY中。
编辑:这是为什么ANSI-SQL和其他RDBMS不允许使用此语法的一个很好的例子