2016-05-09 3 views
0

私はこのクエリを取得しようとしている:"IN" クエリ

$my_query = "select * from tableuser where `userid`<> '$userid' and userid in 
(select friend from userrelations where blocked='no' and user_id='$userid')"; 

私がこれまで試したどのLaravel 5.2

で動作するように:

$query_first = DB::table('userrelations') 
       ->select('friend') 
       ->where('blocked' , '=', 'no') 
       ->where('user_id' , '=', $userid) 
       ->get(); 

$my_query = DB::table('tableuser') 
       ->select('*') 
       ->where('userid' , '<>', $userid) 
       ->where('userid' , 'in', $query_first) 
       ->get(); 

これを行うことにより、空の結果が得られますが、これは正しくありません。

お願いします。あなたがあなたの代わりにオブジェクトの配列のIDの配列を取得しますpluck()

->pluck('id'); 

->get(); 

を交換する必要があります最初のクエリのために

答えて

1

。その後


、2番目のクエリで間違った部分:

- >( 'で' 'ユーザID'、$のquery_first)

whereIn()あります:

$users = DB::table('tableuser')->whereIn('userid', $query_first)->get(); 
+0

ありがとうございます@limote –

+0

@MounirElfassi助けてうれしい! :) –