2016-04-25 52 views
1

可以說我有用戶Laravel:排序在左側一列加入

id | userName 3 Michael 4 Mike 5 George

的一個簡單的表,他們的汽車的另一個​​表和價格

id | belongsToUser | carPrice 1 4 5000 2 4 6000 3 4 8000

我想做一個左連接,返回最高或最低的價格 目前,查詢將返回該用戶carPrice的最後/第一個實例。 我試過在各種連接查詢中輸入orderBy,但無濟於事。

我有一個輔助函數將返回對需求的最高/最低價格,但我不知道怎麼會適合這個查詢中,因爲我想用laravels內置PAGINATE

回答

1

這是總的問題所以這裏是溶劑化:

DB::table('users') 
->leftJoin('carPrices', 'belongsToUser', '=', 'users.id') 
->select('users.*', DB::raw('MAX(carPrice) as highestCarPrice'), DB::raw('MIN(carPrice) as lowestCarPrice')) 
->groupBy('users.id') 
->get(); 
+0

我收到以下錯誤:'SQLSTATE [42000]:語法錯誤或訪問衝突:1064您的SQL語法錯誤;檢查與您的MariaDB服務器版本相對應的手冊,以便在第1行用戶'''id''附近使用正確的語法'(SQL:select'users'。,MAX(carPrice)AS highestCarPrice, MIN(carPrice)AS lowestCarPrice from''left join'carPrices' on'belongsToUser' = users.id''group by'users'.'id')' –

+0

Sory我在這段代碼中犯了一個錯誤忘了'table'在'DB ::'之後。也請檢查所有表格的名稱,因爲您沒有在這裏發佈它們。 –

+0

是的,我注意到執行前。另外;在得到() –