【发布时间】:2019-08-27 01:15:35
【问题描述】:
我有一个这样的 sql 查询,我想将它转换为 laravel 我该怎么做?
我试过了,但我对 wherein 和 join 感到困惑
sql查询
SELECT MIN(StartFrom) as StartFrom,MAX(EndTo) as EndTo from appointmentsettings
WHERE day=1
and PersonID IN (
SELECT p.id
FROM users p
JOIN appointmentsettings aps ON p.id = aps.PersonID
WHERE p.active=1 AND aps.CompanyID = 1 OR aps.PersonID IN(
SELECT cps.user_id
from companypersonstructs cps
WHERE cps.CompanyID =1
) group by aps.PersonID
)
and active=1
我在这里尝试
Appointmentsetting::select('StartFrom', 'EndTo')
->min('StartFrom')
->max('EndTo')
->where(['Day'=>$day, 'Active'=>1])
->whereIn('PersonID', function ($query) use ($id) {
$query->select('p.id')
->from('users as p')
$query->join('appointmentsettings as aps', 'p.id', '=', '')
->where(["user_id" => $id, 'Active' => 1])->get();
})->orderBy('id')->get();
【问题讨论】:
-
你试过 DB Raw Query 吗?
-
如果你将它“转换”为 Laravel,你会得到什么?查询生成器将构建与您相同的查询。只需使用
DB::select()。