gpt4 book ai didi

php - 如何将我的 sql 查询中的连接转换为 laravel ORM

转载 作者:行者123 更新时间:2023-11-30 22:43:32 25 4
gpt4 key购买 nike

我是 laravel 5 的新手,如何将此查询转换为 laravel ORM

 select `users`.`id`, `users`.`username`, count(`ord`.`id`) As total 
FROM `users`
LEFT JOIN `orders` AS `ord` ON `ord`.`empolyee_id` = `users`.`id`
AND DATE(`ord`.`created_at`) = $date
GROUP BY `users`.`id`

我试过这个解决方案,但它没有正常工作

 $orders = Order::rightjoin('users',function($join)  use($date){
$join->on('users.id', '=','orders.empolyee_id');
$join->on("DATE(created_at)", '=', $date);
})
->select(DB::raw('count(orders.id) as total, users.username'))
->groupBy('users.id')->get()

最佳答案

鉴于您只选择了 usernametotal,您可能想要一个数组而不是 Eloquent 结果,这就是为什么 lists 在最后。如果您仍需要模型集合,请改用 get

$users = User::leftJoin('orders as o', function($join) use ($date) {
$join->on('users.id', '=', 'o.empolyee_id')
->where(DB::raw('DATE(o.created_at)'), '=', $date);
})
->selectRaw('count(o.id) as total, users.username')
->groupBy('users.id')
->lists('total', 'username')

关于php - 如何将我的 sql 查询中的连接转换为 laravel ORM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30359818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com