実現したいこと
MySQL1055のエラーの解消
前提
主キーを含まないカラムでgroup byをしたいが、エラーが発生しており実行できない。
エラー内容から、group byのカラムとSELECTを一致させないといけないことは理解できたが、
group byに主キーを含めないカラムでグループ分けする方法がよくわからず、SQLの変更を変更できなかった。
ご教授頂けないでしょうか。
<出力テーブル>
b.1 | b.2 | b.3 | ... | company_name | s.name | s.address | s.code | t.status |
---|---|---|---|---|---|---|---|---|
... |
SQL実行時にonly_full_group_byのエラーが発生する。
MySQLのonly_full_group_byは解除せずにSQLの変更で対応したい。
発生している問題・エラーメッセージ
Error Code: 1055. Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
該当のソースコード
SQL
1SELECT b.*, bc.name AS company_name, s.name, s.address, s.code, t.status 2FROM テーブル1 b 3LEFT JOIN テーブル2 bc ON bc.id = b.billing_company_id 4LEFT JOIN テーブル3 s ON s.billing_company_id = b.billing_company_id 5LEFT JOIN テーブル4 t ON t.sitecode = s.code 6WHERE b.billing_ym = ?1 7GROUP BY s.code,
試したこと
以下のサイトに記載されていた「サブクエリを使う」、「サブクエリで結合する」を試してみたが上手くいかなかった。
https://blog.capilano-fw.com/?p=7001#i-2
補足情報(FW/ツールのバージョンなど)
MySQL:5.7.41
