2017-09-23 227 views
1

我有兩個表 - 第一個用戶和第二個是buy_courses。選擇所有不在另一個表中的列laravel 5.5

users table

enter image description here

我想選擇所有用戶的user_name是不是buy_courses.I想是這樣 -

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

它給了我,所有的用戶在購買這些USER_NAME課程,當我使用'<>'時,然後獲取所有用戶。什麼應該是正確的查詢。請別人幫我。

回答

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($ CON, 「SELECT * FROM用戶其中user_name NOT IN(SELECT USER_NAME FROM buy_courses)」);

相關問題