darkthor
Новичок
Всем привет. Столкнулся с сложным запросом.
Все это происходит в постгресе.
Не спрашивайте про связи, структура БД точно правильная, просто не буду углубляться с нюансы проекта.
Нужно выбрать те записи, у которых obligations.egrp не true (но только если в obligations вообще есть запись). Мое условие не работает, может быть потому что постгрес игнорит условие из-за того, что не было слияния.
Может быть можно как-то решить проблему без добавления других запросов и без проверки в PHP? Не хочется тянуть лишние записи.
PHP:
$rows = static::query()
->leftJoin('obligation_objects', function ($join) {
$join->on('obligation_objects.object_id', 'lands.id')
->where('obligation_objects.object_type', static::class);
})
->leftJoin('obligations', 'obligations.id', 'obligation_objects.obligation_id')
->where('obligations.egrp', '!=', true); // Тут не работает видимо
->select('lands.id as id')
->groupBy('lands.id')
->get();
Не спрашивайте про связи, структура БД точно правильная, просто не буду углубляться с нюансы проекта.
Нужно выбрать те записи, у которых obligations.egrp не true (но только если в obligations вообще есть запись). Мое условие не работает, может быть потому что постгрес игнорит условие из-за того, что не было слияния.
Может быть можно как-то решить проблему без добавления других запросов и без проверки в PHP? Не хочется тянуть лишние записи.