2011-07-10 4 views
0

Donc, je suis en train de créer un script d'intégration, mais pour une raison quelconque, il ne montre pas le résultat obtenu. Ma requête estLa requête SQL n'affiche pas le résultat attendu

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 

L'une des lignes du résultat qui est inattendu est ce

user_id | user_group_id | display_style_priority  
86 | 11 |5200 

Le groupe avec l'id 11 a display_style_priority 2000 et non 5200. Il devrait montrer l'ID de groupe d'utilisateurs avec display_style_priority 5200. Quel est le groupe le mieux classé dans cet utilisateur? Quelqu'un peut-il indiquer ce que je fais mal.

Répondre

4

Essayez de changer le GROUP BY à

GROUP BY 
    xf_user_group_relation.user_id, xf_user_group_relation.user_group_id 

La plupart des autres SGBD jetterait une erreur pour cette requête parce que chaque colonne dans la liste SELECT doit être soit agrégées ou dans le GROUP BY.

Edit: c'est un excellent exemple des raisons pour lesquelles SGBDR ANSI-SQL et d'autres ne permettent pas cette syntaxe

+0

Merci pour la réponse rapide. Cela a résolu! – BlackVoid

Questions connexes