SQL 查询未显示预期结果
Posted
技术标签:
【中文标题】SQL 查询未显示预期结果【英文标题】:SQL Query not showing expected result 【发布时间】:2011-10-02 07:17:17 【问题描述】:所以我创建了一个集成脚本,但由于某种原因它没有显示预期的结果。 我的查询是
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
结果中出乎意料的一行是this
user_id | user_group_id | display_style_priority
86 | 11 |5200
id 为 11 的组具有 display_style_priority 2000 而不是 5200。它应该显示具有 display_style_priority 5200 的用户组 id。 该用户所在的组是排名最高的组。 谁能指出我做错了什么。
【问题讨论】:
【参考方案1】:尝试将 GROUP BY 更改为
GROUP BY
xf_user_group_relation.user_id, xf_user_group_relation.user_group_id
大多数其他 DBMS 会对该查询抛出错误,因为 SELECT 列表中的每一列都必须是聚合的或在 GROUP BY 中。
编辑:这是一个很好的例子,说明为什么 ANSI-SQL 和其他 RDBMS 不允许这种语法
【讨论】:
以上是关于SQL 查询未显示预期结果的主要内容,如果未能解决你的问题,请参考以下文章