我怎样才能在 laravel 中的分组依据之前进行排序?
How can I make order by before group by in laravel?
我的情况与此相同: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 eloquent?
我发现很难在 laravel eloquent 中转换 sql 查询。因为查询很复杂
我该如何解决这个问题?
$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();
希望它有用:)
如果你想使用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)");
我的情况与此相同: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 eloquent?
我发现很难在 laravel eloquent 中转换 sql 查询。因为查询很复杂
我该如何解决这个问题?
$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();
希望它有用:)
如果你想使用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)");