如何将当前的sql
语句转换为Eloquent,并将team_id
内的结果按group_id
分组?
SELECT
max(`group_id`) as group_id,
`team_id` as team_id,
max(level_id) as level_id,
sum(`played`) as played,
sum(`won`) as won,
sum(`draw`) as draw,
sum(`lost`) as lost,
sum(`gf`) as gf,
sum(`ga`) as ga,
sum(`gd`) as gd,
sum(`points`) as points
FROM `group_team`
WHERE level_id = 1
GROUP BY team_id
答案 0 :(得分:1)
像这样的东西
$query= DB::table('group_team')
->max('group_id')
->where('level_id',1)
->groupBy('team_id')
->get();
或者你可以运行raw sql来直接查询db,就像这样
$query = DB::select('SELECT max("group_id") as group_id' FROM group_team WHERE level_id = 1 GROUP BY team_id);
要获得更好的解释,请查看文档:{{3}}
答案 1 :(得分:1)
我最好的尝试是:
知道GroupTeam是你的模型
GroupTeam::where('level_id', 1)
->groupBy('team_id')
->addSelect(
DB::raw('*,
max(`group_id`) as group_id,
`team_id` as team_id,
max(level_id) as level_id,
sum(`played`) as played,
sum(`won`) as won,
sum(`draw`) as draw,
sum(`lost`) as lost,
sum(`gf`) as gf,
sum(`ga`) as ga,
sum(`gd`) as gd,
sum(`points`) as points'
)
)->get();
</code>