Laravel 5.2,雄辩,将表1连接到表2,并将表2的最大列

Laravel 5.2,雄辩,将表1连接到表2,并将表2的最大列,laravel,join,eloquent,laravel-5.2,max,Laravel,Join,Eloquent,Laravel 5.2,Max,如何使用Laravel(5.2)和Elount实现以下等效SQL查询 选择 产品编号 ,products.name ,最大(投标。投标价格)作为最大投标 来自产品 内部联合投标 ON products.id=bids.product\u id 按产品分组。id 基于以下背景: 我有一个拍卖系统,有用户竞价的产品。这意味着一个产品可以有多个投标,而一个投标只能针对一个产品 现在我想检索一个当前最高出价的产品 表格: 产品 身份证 名字 出价 身份证 投标价格 产品标识 型号: 产品 试

如何使用Laravel(5.2)和Elount实现以下等效SQL查询

选择
产品编号
,products.name
,最大(投标。投标价格)作为最大投标
来自产品
内部联合投标
ON products.id=bids.product\u id
按产品分组。id
基于以下背景:

我有一个拍卖系统,有用户竞价的产品。这意味着一个产品可以有多个投标,而一个投标只能针对一个产品

现在我想检索一个当前最高出价的产品

表格:

产品

  • 身份证
  • 名字
出价

  • 身份证
  • 投标价格
  • 产品标识
型号:

产品

试试这个:

DB::table('products')
    ->select(['products.id', 'products.name', DB:raw('MAX(bids.bid_price) as maximum_bid')])
    ->join('bids', 'products.id', '=', 'bids.product.id')
    ->groupBy('products.id')
    ->get();
为特定产品添加where子句:

DB::table('products')
    ->select(['products.id', 'products.name', DB:raw('MAX(bids.bid_price) as maximum_bid')])
    ->join('bids', 'products.id', '=', 'bids.product.id')
    ->groupBy('products.id')
    ->where('products.id, '=', 123)
    ->get();

这项工作使用了雄辩的语言

Product::join('bids', 'products.id', '=', 'bids.product.id')
    ->select(['products.id', 'products.name', DB:raw('MAX(bids.bid_price) as maximum_bid')])
    ->groupBy('products.id')
    ->where('products.id', '=', 123)
    ->get();

谢谢,@btl。将其作为查询生成器方法牢记在心,但使用雄辩的方法是否可行?
Product::join('bids', 'products.id', '=', 'bids.product.id')
    ->select(['products.id', 'products.name', DB:raw('MAX(bids.bid_price) as maximum_bid')])
    ->groupBy('products.id')
    ->where('products.id', '=', 123)
    ->get();