如何在 Laravel Eloquent 中使用 MIN 和 MAX sql 查询

Jaz*_*uly 2 mysql sql laravel eloquent laravel-5

我想在同一行使用minmaxlaravel elaquent,这可能吗?

Appointmentsetting::where('Day','=',1)
->whereIn('PersonID', function ($query) {
    $query->select('p.id')
        ->from('users as p')
        ->join('appointmentsettings as aps', 'aps.PersonID', '=', 'p.id')
        ->where('p.active', '=', 1)
        ->where('aps.CompanyID', '=', 1)
        ->orWhereIn('aps.PersonID', function ($query2) {
            $query2->select('cps.user_id')
                    ->from('companypersonstructs as cps')
                    ->where('cps.CompanyID', '=', 1);
        })
        ->groupBy('aps.PersonID');
})
->where('active', '=', 1)
->select(\DB::raw("SELECT MIN(StartFrom) AS StartFrom, MAX(EndTo) AS EndTo"));
->get();
Run Code Online (Sandbox Code Playgroud)

我有错误

SQLSTATE[42000]:语法错误或访问冲突:1064 你的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“约会设置”中的“SELECT MIN(StartFrom) AS StartFrom, MAX(EndTo) AS EndTo”附近使用正确的语法

Gau*_*pta 6

->selectRaw(" MIN(StartFrom) AS StartFrom, MAX(EndTo) AS EndTo");
Run Code Online (Sandbox Code Playgroud)

请提出以上查询并尝试。您查询中的主要问题是您使用了两次 select 不需要在 select 或 selectRaw 中写入 select 以获取有关原始查询的更多信息,请单击此处