3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MySQL5.7.9でGROUP BYがエラーになった件

Last updated at Posted at 2015-12-28

■エラー内容

MySQL5.6ではエラーにならなかった以下のSQLが...

SELECT a.name, b.name
FROM a LEFT JOIN b ON a.id = b.id
GROUP BY a.id

MySQL5.7.9では以下のエラーとなりました。

Expression #n of SELECT list is not in GROUP BY 
clause and contains nonaggregated column 'dbname.b.name' 
which is not functionally dependent on columns in GROUP BY clause;
this is incompatible with sql_mode=only_full_group_by

■原因

そもそもこのSQLは誤っているのでエラーになるのが正しいようですが、
MySQL5.6では「only_full_group_by」が無効になっているらしくエラーになりませんでした。

MySQL5.7.9ではデフォルトで有効になっているようなので、エラーになったようです。

■許容するには

「only_full_group_by」を無効にすればOKそうです。
が、誤っているSQLもエラーにならないという罠に陥るので、
迂闊に無効にするのは危ない気がします。
設定大事。(今まで書いたSQL大丈夫か心配になってきました...)

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?