[英]Laravel 5.2 left join one to many only row with column of highest value
我试图用雄辩的一对多关系进行左联接。 我只想获得sort_order列中具有最高值的行。
到目前为止,我的查询看起来像这样:
Package::select('packages.*')
->leftJoin('package_routes', 'package_routes.package_id', '=', 'packages.id')
->leftJoin('package_route_items', function($join){
$join->on('package_route_items.package_route_id', '=', 'package_routes.id')
->where(???);
})->...//do more stuff to query here
如果我什至根本不应该使用where,那么我会被困在where子句中。
由于我不知道所有查询会尝试简化条件的地方(您可能必须调整列名和语法
添加use DB;
在控制器/模型的开头
$data = DB::table('packages')
->select('packages.*, package_route_items.company_id, package_routes.company_id')
->join('package_routes', 'package_routes.package_id', '=', 'packages.id')
->join('package_route_items.package_route_id', '=', 'package_routes.id')
->orderBy('packages.value_column', 'DESC')->first();
到目前为止,据您的描述,这就是我所了解的。 它未经测试,但我认为应该可以进行较小的编辑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.