我在数据库中有一个程序列表。每个程序都有一个organization_id
程序所属的,加上一个start_date
和end_date
。
我的问题是,如果给出了两个日期并且我必须获取在特定组织的日期之间开始或在日期之间结束的所有程序,那么查询应该是什么样子。以下查询返回组织范围之外的所有程序(不属于组织)。
<?php
DB::table('programs')
->where('organization_id', $organizationidlist[0])
->whereBetween('start_date', array($start_date, $end_date))
->orWhere(function ($query) use($start_date, $end_date, $organizationidlist) {
$query
->where('organization_id', $organizationidlist[0])
->whereBetween('end_date', array($start_date, $end_date))
;
})
->orderBy('created_at', 'desc')
->get()
;
?>