2016-04-25 67 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

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