簡體   English   中英

LARAVEL、ELOQUENT、SQL - groupBy 1

[英]LARAVEL, ELOQUENT, SQL - groupBy 1

當我手動運行以下 SQL 時,我得到了預期的結果。 我試圖在 Laravel 的 Eloquent 中編寫相同的查詢,但出現錯誤:

SQLSTATE [42000]:語法錯誤或訪問沖突:1056上'匯總'(SQL不群:SELECT COUNT()作為骨料從daily_menu內加入mealsdaily_menuid = mealsdaily_menu_id左連接fruitsfruitsmeal_id = meals . id其中lodge_id = 1 group by 1)*

有效的原始 SQL 查詢:

SELECT
   d.id,
   SUM(IF(f.id IS NULL, 0, 1)) AS fruit_count
FROM daily_menu d
  JOIN meals m
    ON d.id = m.daily_menu_id
  LEFT JOIN fruits f
    ON m.id = f.meal_id 
GROUP BY 1

我的 Laravel Eloquent 實現:

$query = $query
    ->select("daily_menu.id", DB::raw("SUM(IF(fruits.id IS NULL, 0, 1)) AS fruit_count"))
    ->join("meals", "daily_menu.id", "=", "meals.daily_menu_id")
    ->leftJoin("fruits", "fruits.meal_id", "=", "meals.id")
    ->groupBy(DB::raw("1"));
$query = $query
        ->select("daily_menu.id", DB::raw("SUM(IF(fruits.id IS NULL, 0, 1)) AS fruit_count"))
        ->join("meals", "daily_menu.id", "=", "meals.daily_menu_id")
        ->leftJoin("fruits", "fruits.meal_id", "=", "meals.id")
        ->groupBy(DB::raw("daily_menu.id"));

我不應該使用 1 我應該使用正確的列別名。 相關: 無法解決此問題:“無法按聚合分組”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM