我正在尝试获取此查询:
$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();
通过这样做,我得到空结果,这是不正确的。
请问有什么帮助吗?
最佳答案
对于第一个查询,您应该替换
->get();
与
->pluck('id');
与 pluck()你将得到一个 id 数组而不是对象数组。
<小时/>然后,第二个查询中的错误部分:
->where('userid' , 'in', $query_first)
有whereIn()
:
$users = DB::table('tableuser')->whereIn('userid', $query_first)->get();
关于php - Laravel 5.2 中的 "IN"查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37123960/