sql - लारवेल अलौकिक प्रश्नोत्पादक का प्रयोग करके उपकुंजी के साथ क्वेरी का चयन कैसे करें?




laravel laravel-5 eloquent query-builder (2)

इस उत्तर को और अपने संस्करण के लिए भी दिखाएं :

$subQuery = \DB::table('orders')->selectRaw('driver_id, created_at, COUNT(driver_id) AS total_delieveries')
    ->where('is_paid', 0)
    ->where('order_status', '5')
    ->whereBetween('created_at', [$first_Day, $last_Day])
    ->groupBy(\DB::raw('DATE_FORMAT(created_at ,"%Y-%m-%d"),driver_id'));

$q = \DB::table(\DB::raw('('.$subQuery->toSql().') as o1'))
    ->selectRaw('o2.driver_id,total_delieveries,DATE_FORMAT(o1.created_at ,"%Y-%m-%d") AS created_at')
    ->join('orders as o2', 'o1.driver_id', '=', 'o2.driver_id')
    ->groupBy('o1.created_at')
    ->mergeBindings($subQuery)
    ->get();

मुझे क्वेरी से परिणाम मिल गया था।

मेरा सरल एसक्यूएल है:

 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'));

मुझे जो परिणाम चाहिए वो मुझे मिला, लेकिन मैं इसे बेहतर तरीके से लिखना चाहता हूं।

कृपया मुझे इस प्रश्न को लिखने के लिए सही और उचित तरीके बताएं।


ऐसा करने का सरल तरीका यह है:

UPDATE
    table_to_update,
    table_info
SET
    table_to_update.col1 = table_info.col1,
    table_to_update.col2 = table_info.col2

WHERE
    table_to_update.ID = table_info.ID




sql laravel laravel-5 eloquent query-builder