由于我切换到PHP 7并且具有聚合值并不适用于我想要使用它的方式,所以Group by有问题。GroupBy在Laravel 5.3和PHP 7中不起作用
我有一个列表,有时在列表中有重复。例如:
歌名歌曲标题B歌曲名称A(重奏)乐曲标题C
在结果中,歌曲名称A应该只出现一次。以前,我是通过分组完成的,其中确定歌曲标题的ID被分组。
我的表结构是:
id
group_id
song_title_id
Song_title_id涉及:
id
song_title
在第一个表中,可以有同样的song_title_id的多个实例。当结果返回时,我只需要在结果中每个song_title_id的一个实例。
之前,我已经做了:
DB::table('group_songs')
->groupBy('song_title_id')
->get();
由于更新到PHP 7,我得到一个错误:
Syntax error or access violation: 1055 '[table/column name]' isn't in GROUP BY
我在做什么错?
因此,表中的每一单柱将需要纳入GROUPBY? – jerauf
我是否需要列出表格中的每一列?同样的事情可以用不同的方式来完成吗? – jerauf
您可以只添加一个groupBy和一个select 'DB :: table('group_songs') - > select('song_title_id') - > groupBy('song_title_id') - > get();' 但是如果你需要所有关闭的列,你将需要对它们进行分组或者在未分组的列上添加组功能(如MIN/MAX) – Geding