Используя красноречивые отношения, вы можете легко получить предметы, в которых нет связанных записей, присутствующих в item_offers
class Item extends Model{
public function item_offers()
{
return $this->hasMany('App\ItemOffers', 'some_id_field','id');
}
}
В построителе запросов вы можете написать
$items = Item::doesntHave('item_offers')->get();
Для обновленного запроса
ВЫБРАТЬ * ИЗ пунктов, где (
выберите if ((выберите count (*) из item_offers где (some_id_field = items.id или other_id_field = items.id) <= 0, true, false)
); </p>
Вы можете переписать его с левым соединением, как
select i.*
from items
left join item_offers io on (io.some_id_field = i.id or io.other_id_field = i.id)
where io.id is null
используя построитель запросов, вы можете написать его как
DB::table('items as i')
->leftJoin('item_offers as io', function ($join) {
$join->on('io.some_id_field', '=', 'i.id')
->orWhere('io.other_id_field', '=', 'i.id');
})
->whereNull('io.id')
->get()