Laravel5.2のクエリビルダ(DB:table(xxx)->where(xxx)みたいなやつ)めっちゃ得意!って人いませんか!助けてください!
下記のSQLをLaravelのクエリビルダで記述する方法を教えてください!m(_ _)m
select
*
from
tbl_a
left join
(select
parking_id,
date_add(CAST(start_date AS DATETIME), INTERVAL start_time HOUR_SECOND) as start_datetime,
date_add(CAST(end_date AS DATETIME), INTERVAL end_time HOUR_SECOND) as end_datetime
from
tbl_a
) as tbl_b
on tbl_a.parking_id = tbl_b.parking_id
where
(tbl_b.start_datetime between '2018-09-06 07:00:00' and '2018-09-06 07:30:00'
or tbl_b.end_datetime between '2018-09-06 07:00:00' and '2018-09-06 07:30:00'
or '2018-09-06 07:00:00' between tbl_b.start_datetime and tbl_b.end_datetime
or '2018-09-06 07:30:00' between tbl_b.start_datetime and tbl_b.end_datetime)
and tbl_b.start_datetime <> '2018-09-06 07:30:00'
and tbl_b.end_datetime <> '2018-09-06 07:00:00'
インデントが質問時には消えてしまってますね……。醜くてすいません。
ちなみにmysqlでこの文が動くのは確認済みです。
【使用テーブル】
テーブル名:tbl_a
カラム:parking_id(int),start_date(date型),start_time(time型),end_date(date型),end_time(time型)
Laravelだけど、そういった複雑なのは別の方法で実装してるよー、って人もいたら教えてください。