由于JSON支持,我刚将MySQL升级到5.7.17。项目中的一些更改需要此升级。只有一个SQL查询不能按预期工作。我得到一个错误: ER_WRONG_FIELD_WITH_GROUP
MySQL 5.7.17中的SQL查询
我使用了它,并且大多数答案是:在sql模式下禁用ONLY_FULL_GROUP_BY
。但这只是解决问题而不是解决问题。如我错了请纠正我。
我的SQL是给问题:
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
的d_user_link
不必为每个用户的结果,因为有些用户可以看到每一个设备(d_user_link
是设备用户链接),或不有任何链接的设备。
我希望你能帮助我解决这个问题。我无法通过使用其他搜索功能来获得答案,即禁用ONLY_FULL_GROUP_BY
。
谢谢!
的可能的复制[MySQL的:不是GROUP BY](http://stackoverflow.com/questions/25800411/mysql-isnt-in-group-by) – Shadow
'users.id'在你的选择中出现两次,一次出现在'users。*'中,另一次出现为'user_group_id'。这不是唯一的问题,btw – JohnHC
啊,这是出于测试目的。它不在查询中@JohnHC。谢谢!你看到了哪些问题? –