2017-09-23 9 views
1

最初のユーザーは1人で、もう1人はbuy_coursesです。他のテーブルにないすべての列を選択します。laravel 5.5

$users = DB::table('users') 
       ->rightjoin('buy_courses', 'users.user_name', '=', 'buy_courses.user_name') 
       ->get(); 

それは私を与える、すべてのユーザー買いのものUSER_NAME - 私はそれらのuser_nameがbuy_courses.Iにないすべてのユーザーを選択しようとしています

users table

enter image description here

のような何かを試してみました私が '<>'を使用している場合は、すべてのユーザーを取得します。何が正しいクエリであるべきですか。誰かが私を助けてください。

答えて

1
DB::table("users")->select('*')->whereNotIn('user_name',function($query) { 

    $query->select('user_name')->from('buy_courses'); 

})->get(); 

だけが実際に内部が多分またあなたが試すことができますので、実際にはLaravelに参加された参加:

DB::table('users') 
      ->join('buy_courses', 'users.user_name', '=', 'buy_courses.user_name') 
      ->get(); 
0

あなたはSQLの 'NOT IN' を使用することができます。

例:

mysqli_query($詐欺、 "USER_NAMEはNOT IN(buy_courses FROM USER_NAMEを選択する場所)のユーザSELECT * FROM");

関連する問題