由於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。謝謝!你看到了哪些問題? –