【发布时间】:2017-11-23 20:38:35
【问题描述】:
我已经从查询中得到了结果。
我的简单 SQL 是:
SELECT
o2.driver_id,
total_delieveries,
DATE_FORMAT(o1.created_at ,'%Y-%m-%d') AS created_at
FROM
(
SELECT
driver_id,
created_at,
COUNT(driver_id) AS total_delieveries
FROM
orders
WHERE
is_paid = 0
AND order_status = 5
AND created_at BETWEEN "'.$first_Day.'"
AND "'.$last_Day.'"
GROUP BY DATE_FORMAT(created_at ,'%Y-%m-%d'),driver_id
)
o1 INNER JOIN orders o2 ON o1.driver_id = o2.driver_id GROUP BY o1.created_at
在 Laravel 源码中,我写了查询:
$responseData = DB::select(DB::raw('select t.driver_id,total_delieveries,DATE_FORMAT(q1.created_at,\'%Y-%m-%d\') as created_at from ( SELECT driver_id, created_at, COUNT( driver_id ) AS total_delieveries FROM orders WHERE is_paid=0 AND order_status = 5 AND created_at BETWEEN "'.$first_Day.'" AND "'.$last_Day.'" GROUP BY DATE_FORMAT(created_at,\'%Y-%m-%d\'),driver_id) q1 INNER JOIN orders t ON q1.driver_id = t.driver_id GROUP BY q1.created_at'));
我得到了我想要的结果,但我想以更好的方式编写它。
请告诉我编写此查询的正确方法。
【问题讨论】:
标签: sql laravel laravel-5 eloquent query-builder