Группа с проблемой проблематична, так как я переключился на PHP 7 и не имеет агрегированных значений, чтобы не использовать ее.GroupBy в Laravel 5.3 и PHP 7 не работает
У меня есть список, а иногда есть повторы в списке. Например:
Название песни Песня Название Б Название песни А (повторение) Название песни С
В результатах, название песни А должен отображаться только один раз. Раньше я делал это с группой, где идентификатор, определяющий название песни, сгруппирован.
Моя структура таблицы:
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 и одного выбора 'DB :: таблицу (' group_songs ') -> выберите (' song_title_id ') -> GroupBy (' song_title_id ') -> получить();' , но если вам нужны все столбцы, вам нужно будет сгруппировать их или добавить функцию группы (например, MIN/MAX) на не сгруппированные столбцы – Geding