我有表格属性。表格包含以下列:attr_id
,value
。
我希望按attr_id
创建组记录并防止重复,因为在表中可以是多个attr_id
,其中包含:3,2,1 ids。我需要显示按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
答案 0 :(得分:0)
我认为你在寻找的是:
$attrs = Attribute::get()->groupBy('attr_id');
这将使用Laravel集合https://laravel.com/docs/5.6/collections#method-groupby
中的groupBy()函数否则你正在使用" group by"错误,因为您必须指定要返回的所有键。您应该阅读哪些分组:https://www.w3schools.com/sql/sql_groupby.asp https://www.tutorialspoint.com/sql/sql-group-by.htm