gleber1
@gleber1

Как сделать такую выборку на laravel(без использования raw)?

blob
Попытка безуспешная
$query = DB::table('A')
            ->leftJoin('B', 'A.id', '=', 'B.A_id')
            ->whereNull('B.A');
        if ($id)
            $query->orWhere('A_id', $id);
        return $query->get();
  • Вопрос задан
  • 250 просмотров
Решения вопроса 2
difiso
@difiso
В параллельной вселенной я космонавт
Какой запрос генерирует Builder? Посмотреть можно так (отсюда):
DB::connection()->enableQueryLog();
//To get an array of the executed queries, you may use the getQueryLog method:
dd(DB::getQueryLog());

Сравните с тем, что должно быть.
Лично я грешу на whereNull('B.A'); вместо whereNull('B.A_id');.
Ответ написан
@Kostik_1993
Web Developer
Как то так, мог ошибиться, но смысл такой
$query = DB::table('A')
            ->leftJoin('B', 'A.id', '=', 'B.A_id')
            ->whereNull('B.A')
            ->where(function ($i) {
                 if ($id) $i->where('A_id', $id);
             })
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы