Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

mysql5.7で「is not in GROUP BY clause and contains nonaggregated column 」

SELECT list is not in GROUP BY clause and contains nonaggregated column '' which is not functionally dependent on columns in GROUP BY clause

上記のようなエラーが出た。

なんだろうと思ってたら、何の事はない。GroupByで集約してSELECTで指定されているカラムが集約されていませんよ、ということ。注文テーブルを商品でGroupByしたら、注文IDがSELECT句にあっても困りますよね、だってそのIDって集約された結果じゃなくて適当な値が入っている(= not functionally dependent)からダメですよ、というものらしい。

ORマッパーとか使ってると、勝手にこの辺のカラムがSELECTに入ることがあるかもな〜 その時はカラム指定して逃げるか、only_full_group_byオプションを有効にするしか無いみたいね。