Подзапрос построителя запросов Laravel для отдельных таблиц

Как мне написать это в Laravel Query Builder:

  • У меня есть таблица users, в которой есть один Customer со столбцом 'phone'.
  • таблица customers, которая принадлежит User на 'user_id' со столбцом 'mobile '.

Я хотел бы найти любой идентификатор клиента с номером телефона, который может быть либо «телефон», либо «мобильный». Что-то вроде этого:

select id 
from customers 
where mobile = '5555555555' or 
user_id = (select id 
           from users 
           where phone = '5555555555')

person seandroid    schedule 19.01.2017    source источник


Ответы (1)


Думаю, вот что мне нужно:

$customers = DB::table('customers')
    ->whereIn('user_id',  function ($query) use ($phoneNumber) {
        $query->select('id')
              ->from('users')
              ->where('users.phone', $phoneNumber);
    })
    ->orWhere('mobile', $phoneNumber)
    ->pluck('id');
person seandroid    schedule 19.01.2017