mysql 在laravel中如何在分组前进行排序?

nsc4cvqm  于 2023-03-07  发布在  Mysql
关注(0)|答案(3)|浏览(169)

我的情况与此相同:Sort data (order by) before group by in mysql
我尝试了所有答案,并从@Justin中找到了最佳答案
在mysql里的答案是这样的:

SELECT t1.*
FROM prd_data t1
WHERE t1.id = (SELECT t2.id
               FROM prd_data t2
               WHERE t2.sub_prd_id= t1.sub_prd_id
               ORDER BY t2.created_at DESC
               LIMIT 1)

我试过sql查询,它工作正常
但如何转换SQL查询到laravel雄辩?
我发现在laravel中转换sql查询比较困难,因为查询非常复杂
我怎样才能解决这个问题?

koaltpgm

koaltpgm1#

如果要使用sql查询,可以简单地使用DB::select(

DB::select("SELECT t1.* FROM prd_data t1 WHERE t1.id = (SELECT t2.id
           FROM prd_data t2
           WHERE t2.sub_prd_id= t1.sub_prd_id
           ORDER BY t2.created_at DESC
           LIMIT 1)");
oyt4ldly

oyt4ldly2#

$whereClause = DB::table(‘prd_data’)->where(t2.sub_prd_id, t1.sub_prd_id)->orderBy(’t2.created_at’,’desc’)->take(1)->get();

$result = DB::table(‘prd_data')->where(t1.id,$whereCond.id)->get();

希望它能起作用:)

5f0d552i

5f0d552i3#

  • 〉whereRaw('客户项目.客户项目标识IN(从客户项目中选择最大值(客户项目.客户项目标识)GROUP BY客户项目.jan。')

用这种方式

相关问题