🐷
【エラー解消】syntax error or access violation: 1055
環境
今回の環境は以下の通りです。
- PHP8.1
- Laravel8
テーブル例
サンプルのテーブルを用意しました。
id | sender | message | sent_at |
---|---|---|---|
1 | TOM | おはよう | 2022-06-01 |
2 | TOM | こんにちは | 2022-06-03 |
3 | HIRO | 今日暇? | 2022-06-04 |
4 | KAORU | 遊ぼうよ | 2022-06-04 |
5 | KEN | ねぇねぇ | 2022-06-05 |
6 | HIRO | 電話しても良い? | 2022-06-07 |
結論
結論から言うと、
GROUP BY で指定したカラムは、SELECTに入れる必要があります。
例えば、
$messages = Message::select('id','sender','message','sent_at')
->groupby('sender')
->get();
この場合、エラーが起きます。
syntax error or access violation: 1055 expression #2 of select list is not in group by clause and contains nonaggregated column...
GROUP BYの指定カラムを、SELECTにも入れましょう。
$messages = Message::select('id','sender','message','sent_at')
->groupby('id','sender','message','sent_at')
->get();
これでエラーは解消できます。
Discussion