Нет ошибок, просто пустой результат.Я пытаюсь понять, почему этот запрос в модели показывает пустую коллекцию.
Запрос Mysql Workbench:
select
u.`name`, u.email, ual.admin, a.account_name
from
users as u
join users_account_link as ual on u.id = ual.user_id and u.account_id_in_use = ual.account_id
join accounts a on ual.account_id = a.id
where
u.sub = 'ABCDE';
Выплевывает одну строку, содержащую нужный набор результатов.
Воссоздание этого в построителе запросов Laravel:
$settings = DB::table('users as u')
->join('users_account_link as ual', function ($join) {
$join->on('u.id', '=', 'ual.user_id')
->where('u.account_id_in_use', '=', 'ual.account_id');
})
->join('accounts as a', 'ual.account_id', '=', 'a.id')
->select('u.name as user_name', 'u.email as user_email', 'ual.admin as admin_check', 'a.account_name')
->where('u.sub',auth()->user()->sub)
->get();
dd($settings);
Предоставляет пустую коллекцию.Я сделал много пользовательских запросов, которые работают хорошо, однако проблема, которую я сузил, - это дополнительное условие для join users_account_link as ual on u.id = ual.user_id and u.account_id_in_use = ual.account_id
, и я попытался переместить это условие в предложение where, которое все еще дает пустой результат.