2011-07-10 17 views
0

統合スクリプトを作成していますが、何らかの理由でその結果が表示されません。 私のクエリは予想外で、結果の行の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 

一つであるID 11のグループがdisplay_style_priority 2000ない5200を持っている、これは

user_id | user_group_id | display_style_priority  
86 | 11 |5200 

です。これは、ユーザーのグループIDを表示する必要がありますdisplay_style_priority 5200で。 このユーザーがいる最高位のグループはどれですか。 間違っていることを誰かが指摘できますか。

答えて

4

は、SELECTリスト内のすべての列が集計またはGROUP BYのいずれかである必要があるため

他のほとんどのDBMSは、そのクエリのエラーをスローします

GROUP BY 
    xf_user_group_relation.user_id, xf_user_group_relation.user_group_id 
にGROUP BYを変更してみてください。

編集:これは、ANSI-SQLと他のRDBMSがこの構文を許可しない理由の素晴らしい例です。

+0

ありがとうございました。それはそれを解決しました! – BlackVoid

関連する問題