我要做的是选择行程,然后按比率分组。
注:评级是一种多态关系
我们有两种型号:
trips
id => int
price => float
city_id => uint
........
ratings:
id => int
ratable_id => int
ratable_type=> varchar
rate => small-int
......
我是如何做到这一点的:
\App\Models\Trip::where('price','>=','100')->with(['ratings' => function ($query) {
$query->groupBy('ratings.rate');
}])->get();
以及 Whoops!
:
“sqlstate[42000]:语法错误或访问冲突:select list的1055表达式#1不在group by子句中,并且包含未聚合的列”“explore.ratings.id”“,该列在功能上不依赖group by子句中的列;这与sql\u mode=only\u full\u group\u by(sql:select*from)不兼容 ratings
哪里 ratings
. ratable_id
在(1,2)和 ratings
. ratable_type
=应用程序\模型\行程分组依据 ratings
. rate
)
1条答案
按热度按时间3xiyfsfu1#
使用不同的方法:
或使用联接: