1
我有3個表。用戶,帳戶和預訂。我已經嘗試了三次表連接和年月明智的查詢。 [3 Table diagram] [1]Laravel加入表並查詢
但查詢預約計算顯示錯誤。它顯示了兩倍的數量。
$january = DB::table('users')
->join('bookings', 'users.id', '=', 'bookings.user_id')
->join('accounts', 'users.id', '=', 'accounts.user_id')
->orderBy('users.room_id','asc')
->groupBy('users.id')
->whereYear('bookings.bookingdate','=', '2016')
->whereMonth('bookings.bookingdate','=','01')
->whereYear('accounts.accountdate','=', '2016')
->whereMonth('accounts.accountdate','=','01')
->select('users.*',
DB::raw("COUNT(case when bookings.breakfast='on' then 1 else null end) AS t_breakfast"),
DB::raw("COUNT(case when bookings.lunch='on' then 1 else null end) AS t_lunch"),
DB::raw("COUNT(case when bookings.dinner='on' then 1 else null end) AS t_dinner"),
DB::raw("SUM(accounts.amount) AS t_amount")
)
->get();
dd($january);
我的帳戶表: Accounts Table 我的預訂表: Bookings Table
當我運行此查詢它的顯示:
+"t_breakfast": "2"
+"t_lunch": "2"
+"t_dinner": "2"
+"t_amount": "22.00"
但我需要t_breakfast,t_lunch, t_dinner的數量是:1.但它顯示雙倍。
當你說它顯示雙倍數量,你指的是t_amount? –
嗨,我正在編輯並在我的文章中添加更多細節。請看我的帖子。 –
你解決了你的問題嗎? –