【问题标题】:SQL Query not showing expected resultSQL 查询未显示预期结果
【发布时间】: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。 该用户所在的组是排名最高的组。 谁能指出我做错了什么。

【问题讨论】:

    标签: mysql sql integration


    【解决方案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 不允许这种语法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-16
      • 2015-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-20
      相关资源
      最近更新 更多