복붙노트

[SQL] SQL 쿼리는 예상 결과를 표시되지

SQL

SQL 쿼리는 예상 결과를 표시되지

그래서 통합 스크립트를 생성하지만, 어떤 이유로 그 예상 결과를 표시하지 메신저. 내 질문입니다

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

아이디 11 그룹은 display_style_priority 2000이 아니라 5200이 display_style_priority 5200와 사용자 그룹 ID를 표시해야합니다. 어떤이 사용자가에있는 가장 높은 순위 그룹입니다. 잘못을하고 메신저 무엇을 캔 사람이 포인트.

해결법

  1. ==============================

    1.에 GROUP BY를 변경해보십시오

    에 GROUP BY를 변경해보십시오

    GROUP BY
       xf_user_group_relation.user_id, xf_user_group_relation.user_group_id
    

    SELECT 목록에있는 모든 열이 중 하나를 집계 또는 GROUP BY에서해야하기 때문에 다른 대부분의 DBMS는 쿼리에 대한 오류가 발생합니다.

    편집 :이 ANSI-SQL 및 기타 RDBMS이 구문을 허용하지 않는 이유의 좋은 예입니다

  2. from https://stackoverflow.com/questions/6642241/sql-query-not-showing-expected-result by cc-by-sa and MIT license