Laravel Eloquent Где не работает после присоединения к таблице - PullRequest
0 голосов
/ 29 марта 2020

Привет! Я написал небольшой запрос, который, кажется, не работает, когда я использую Eloquent, но работает, когда я пишу что-то подобное в MySQL. Данные не возвращаются, что не должно быть связано с моими предложениями where.

Я написал этот запрос, который не работает должным образом -

$invoices = Invoice::leftJoin('user_details', 'invoices.user_id', 'user_details.user_id')
    ->where('invoices.practice_id', '!=', 'user_details.practice_id')
    ->first();

Он возвращает данные, где invoice.practice_id = user_details.practice_id

Я изменил запрос, чтобы доказать, что он не работает -

$invoices = Invoice::select('invoices.practice_id', 'user_details.practice_id')
    ->leftJoin('user_details', 'invoices.user_id', 'user_details.user_id')
    ->where('invoices.practice_id', '!=', 'user_details.practice_id')
    ->first();

Значения, возвращаемые practice_id, равны 6, 6, что невозможно из-за следующего условия where where('invoices.practice_id', '!=', 'user_details.practice_id')

Я сделал что-то не то, чего просто не вижу?

Спасибо за любую помощь, которую вы можете оказать!

ОБНОВЛЕНИЕ

Вот схема БД для таблицы счетов enter image description here

Вот схема БД для таблицы user_details enter image description here

Ожидаемый результат упомянут выше, результаты не должны возвращаться, если invoice_practice_id = user_details.practice_id

Ответы [ 2 ]

0 голосов
/ 30 марта 2020

Попробуйте этот запрос

$invoices = Invoice::select('invoices.practice_id', 'user_details.practice_id')
    ->leftJoin('user_details', 'invoices.user_id', '=', 'user_details.user_id')
    ->where('invoices.practice_id', '!=', 'user_details.practice_id')
    ->first();
0 голосов
/ 29 марта 2020

@ Люк Рейнер

Попробуйте переписать line ->leftJoin('user_details', 'invoices.user_id', 'user_details.user_id')

в

->leftJoin('user_details', 'invoices.user_id', '=', 'user_details.user_id')

Если не попытаться напечатать Последний запрос и опубликовать его

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...