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;
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;
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()
仅供参考:
$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();
$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');
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答729 阅读✓ 已解决
2 回答2.3k 阅读
1 回答689 阅读✓ 已解决
刚才正好发现了这个小工具,希望可以帮到你。
使用 Orator 将你的 SQL 转换为 Laravel Query 语句