Отличный результат для Laravel Eloquent And Raw Query - PullRequest
0 голосов
/ 07 января 2020

Кто-нибудь сталкивался с необработанными SQL запросами, имеющими разные результаты с eloquent?

Вот мое красноречивое возвращение значения:

BookingRoleSchedule::from('booking_role_schedules as a')
->whereExists(function ($q) {
  return $q
    ->select(DB::raw(1))
    ->from('booking_role_schedules as b')
    ->where('a.id', '<>', 'b.id')
    ->whereRaw('not(a.start_date >= b.end_date or a.end_date <= b.start_date)');
})
->join('booking_role_schedule_talent as c', function($join) {
    $join->on('a.id', '=', 'c.booking_role_schedule_id')
      ->whereExists(function($q) {
        return $q
          ->from('booking_role_schedule_talent as d')
          ->select(DB::raw(1))
          ->where('c.booking_role_schedule_id', '<>', 'd.booking_role_schedule_id')
          ->whereRaw('not(c.user_id != d.user_id)');
      });
})->get();

В то время как мой SQL запрос не возвращает никаких значение

select *
from `booking_role_schedules` as `a`
       inner join `booking_role_schedule_talent` as `c` on `a`.`id` = `c`.`booking_role_schedule_id`
  and exists(select 1
             from `booking_role_schedule_talent` as `d`
             where `c`.`booking_role_schedule_id` <> `d`.`booking_role_schedule_id`
               and not (c.user_id != d.user_id))
where exists(select 1
             from `booking_role_schedules` as `b`
             where `a`.`id` <> `b`.`id`
               and not (a.start_date >= b.end_date or a.end_date <= b.start_date))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...