2017-01-19 10 views
0

Wie schreibe ich dies in Laravel Query Builder:Laravel Query Builder subquery separate Tabellen

  • Ich habe eine Benutzer Tabelle, die 'phone' einen Kunden mit Spalte hat.
  • ein Kunden Tabelle, die 'mobile‘zu Benutzer auf 'user_id' mit Spalte gehört.

Ich möchte jede Kundennummer finden, die mit einer Telefonnummer entweder 'Telefon' oder 'Handy'. Etwas wie folgt aus:

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

Antwort

1

Ich denke, das ist das, was ich brauche:

$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');