Je viens de mettre à jour MySQL vers la version 5.7.17 en raison du support JSON. Certains changements dans le projet ont nécessité cette mise à niveau. Une seule requête SQL ne fonctionne pas comme prévu. Je reçois une erreur: ER_WRONG_FIELD_WITH_GROUP
Requête SQL dans MySQL 5.7.17
Je l'ai googlé, et la plupart des réponses ont été: Désactiver ONLY_FULL_GROUP_BY
en mode sql. Mais cela ne fait que résoudre le problème au lieu de le résoudre. Corrige moi si je me trompe.
My SQL qui donne des problèmes:
SELECT users.*,
GROUP_CONCAT(d_user_link.public_key ORDER BY d_user_link.id) AS linked_devices,
permission_users.group_id,
permission_users.custom_permissions,
permission_groups.group_name,
permission_groups.group_permissions
FROM users
INNER JOIN permission_users
ON permission_users.user_id = users.id
INNER JOIN permission_groups
ON permission_groups.id = permission_users.group_id
LEFT JOIN d_user_link
ON d_user_link.user_id = users.id
AND d_user_link.disabled = 0
WHERE users.id = ?
GROUP BY users.id
Le d_user_link
n'a pas pour tous les utilisateurs, parce que certains utilisateurs peuvent voir tous les appareils (d_user_link
est périphérique utilisateur-link), ou ne pas avoir des périphériques liés.
J'espère que vous pouvez m'aider avec ce problème. Je ne pouvais pas obtenir une réponse en googling autre que cette désactivation ONLY_FULL_GROUP_BY
.
Merci!
double possible de [MySQL: est pas GROUP BY] (http://stackoverflow.com/questions/25800411/mysql-isnt-in-group-by) – Shadow
'users.id' apparaît deux fois dans votre select, une fois dans' users. * 'et encore comme' user_group_id'. Ce n'est pas le seul problème, btw – JohnHC
Ah, c'était à des fins de test. Il n'est plus dans la requête @JohnHC. Merci! Quels problèmes voyez-vous? –