鍍金池/ 問答/PHP/ 求助 原生sql 怎么轉(zhuǎn)換成laravel 框架的寫法

求助 原生sql 怎么轉(zhuǎn)換成laravel 框架的寫法

SELECT * FROM a
LEFT JOIN (SELECT user_id,count(user_id) from b
GROUP BY user_id) as v1 ON a.user_id= v1.user_id;

回答
編輯回答
挽青絲

$sub = DB::table('b')->select(['user_id'])->selectRaw('max(user_id)')->grouBy('user_id');
$_list = DB::table('a')->leftJoin(DB::raw('({$sub->toSql()}) as v1),'a.user_id','=','v1.user_id)->get()

不行就運行原生的吧
DB::select('SELECT * FROM a LEFT JOIN (SELECT user_id,count(user_id) from b GROUP BY user_id) as v1 ON a.user_id= v1.user_id');

2017年4月16日 03:29
編輯回答
逗婦乳

僅供參考:
$sub = Abc::where(..)->groupBy(..); // Eloquent Builder instance

$count = DB::table( DB::raw("({$sub->toSql()}) as sub") )

->mergeBindings($sub->getQuery()) // you need to get underlying Query Builder
->count();
2018年1月3日 04:52
編輯回答
久舊酒

剛才正好發(fā)現(xiàn)了這個小工具,希望可以幫到你。

使用 Orator 將你的 SQL 轉(zhuǎn)換為 Laravel Query 語句

2017年5月14日 21:33
編輯回答
浪婳
AModel::query()
->from('a')
->join(DB::Raw("SELECT user_id,COUNT(user_id) FROM b 
GROUP BY user_id) as v1"),'a.user_id','=','v1.user_id')
->get()
2017年1月9日 16:39