2017-01-19 6 views
0

にはどうすればLaravelクエリビルダでこれを書くのです:Laravelクエリビルダサブクエリ別々のテーブル

  • 私は列'phone'と1件のカスタマーを持ってユーザーテーブルを持っています。
  • 顧客の列'mobile'user_id'ユーザーに属しテーブル。

電話番号で「電話」または「モバイル」のいずれかの顧客IDを検索したいと思います。このような何か:

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

答えて

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'); 
関連する問題