Php Laravel查询生成器无法正常工作
我正在尝试与laravel进行高级连接,如下所示:Php Laravel查询生成器无法正常工作,php,mysql,laravel,query-builder,Php,Mysql,Laravel,Query Builder,我正在尝试与laravel进行高级连接,如下所示: $locations = DB::table('location') ->select('location.location_time', 'heart_rate.heartrate' ) ->leftJoin('heart_rate' , function($join) use ($data) { $join->
$locations = DB::table('location')
->select('location.location_time',
'heart_rate.heartrate'
)
->leftJoin('heart_rate' , function($join) use ($data) {
$join->on('heart_rate.user_id', '=', DB::raw('1'))
->where('heart_rate.time', '>', DB::raw('(location.location_time - INTERVAL 5 SECOND)')) // ->whereBetween('heart_rate.time', array(, DB::raw('location.location_time + 2 SECOND')));
->where('heart_rate.time', '<', DB::raw('(location.location_time + INTERVAL 5 SECOND)'));
})
->where('location.user_id', '=', DB::raw('1'))
->whereBetween('location.location_time', array( "2015-04-24 00:00:00", "2015-04-25 23:59:59" ))
->get();
如果您对这个问题进行SQL处理,将会很有帮助。你的问题是:->whereBetween'location.location\u time',array 2015-04-24 00:00:00,2015-04-25 23:59:59试着这样做:->whereBetween'location.location\u time',arraystrtotime 2015-04-24 00:00:00,strotime 2015-04-25 23:59:59我认为你不能在连接子句中使用whereBetween。给出一个错误,称为调用未定义的方法Illumb\\Database\\Query\\JoinClause::whereBetween
SELECT
`location`.`location_time`,
`heart_rate`.`heartrate`
FROM
`location`
LEFT JOIN `heart_rate`
ON `heart_rate`.`user_id` = 1
AND `heart_rate`.`time` > (
location.location_time - INTERVAL 5 SECOND
)
AND `heart_rate`.`time` < (
location.location_time + INTERVAL 5 SECOND
)
WHERE `location`.`user_id` = 1
AND `location`.`location_time` BETWEEN "2015-04-24 00:00:00"
AND "2015-04-25 23:59:59"