如何使用 Laravel 查询生成器从子查询中选择数据

Pra*_* kv 0 php laravel

下面的代码不起作用。

$subQuery = DB::table('table1')->groupBy('col');

$data = DB::table($subQuery, 'sub')->get();
Run Code Online (Sandbox Code Playgroud)

你能帮我解决这个问题吗?

IGP*_*IGP 5

您的代码已经可以运行了。唯一的替代方案(进行相同的查询)是内联该$subQuery部分。

$subQuery = DB::table('table1')->groupBy('col');

$data = DB::table($subQuery, 'sub')->get();
Run Code Online (Sandbox Code Playgroud)

是相同的

$data = DB::table(function ($sub) {
        $sub->from('table1')
            ->groupBy('col');
    }, 'sub')
    ->get();
Run Code Online (Sandbox Code Playgroud)

或者

$data = DB::table(DB::table('table1')->groupBy('col'), 'sub')->get();
Run Code Online (Sandbox Code Playgroud)