Laravel группа не работает - PullRequest
0 голосов
/ 16 мая 2018

У меня есть таблица с атрибутами. В таблице есть столбцы: attr_id, value. Я хочу сгруппировать записи по attr_id и предотвратить дублирование, потому что в таблице может быть несколько attr_id с: 3,2,1 идентификаторами. Мне нужно показать список этих атрибутов, сгруппированных по attr_id.

Как я могу это сделать?

$attrs = Attribute::groupBy('attr_id')->get();

не работает.

Ошибка:

SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'db.attributes.value' which is not functionally dependent on columns

1 Ответ

0 голосов
/ 16 мая 2018

Я думаю, что вы ищете:

$attrs = Attribute::get()->groupBy('attr_id'); 

Это будет использовать функцию groupBy () из коллекций Laravel https://laravel.com/docs/5.6/collections#method-groupby

В противном случае вы используете "group by" неправильно, потому что вам нужно указать все ключи, которые вы хотите вернуть. Вы должны прочитать, что делает группа: https://www.w3schools.com/sql/sql_groupby.asp https://www.tutorialspoint.com/sql/sql-group-by.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...