【发布时间】:2021-04-27 16:20:27
【问题描述】:
我正在尝试将 sql 查询转换为 Laravel 查询构建器, 但我很难理解在 Laravel 中哪个是 FORM SUBQUERY 的最佳方式, 因为如果我没记错的话,这不是您通常可以使用查询生成器执行的操作,但您应该以原始方式实现。
是这样吗?
这个应该怎么翻译?
SELECT t1.* FROM (//with out sub query it would be just products AS t1
SELECT SUM(amount)AS amount, products.*
FROM products ,orders
WHERE orders.product_id = products.product_id
GROUP BY orders.product_id )AS t1
LEFT OUTER JOIN products as t2
ON(t1.name = t2.name AND t1.year_production< t2.year_production)
WHERE t2.name is null
我可以不添加子查询就翻译
$poductlist =Product::from('products AS t1')->select('t1.*')
->leftjoin('products AS t2', function($join){
$join->on('t1.name','=', 't2.name')
->on('t1.year_production','<','t2.year_production')
->whereNull('t2.name')
->orderBy('t2.name','desc');})
->get();
【问题讨论】:
标签: sql laravel eloquent greatest-n-per-group laravel-query-builder