【发布时间】:2016-05-25 16:59:52
【问题描述】:
我有两个表:一个关系表和一个用户表。
关系表如下所示:'user_one_id'、'user_two_id'、'status'、'action_user_id'。
Users 表如下所示:'id', 'username'.
我想先查询关系表,然后返回一个包含“status”列 = 0 的所有行的数组。
然后我想查询 users 表并返回一个 id 和用户名数组,其中 'user_one_id' 匹配 'id'。
到目前为止我的代码:
public function viewRequests()
{
$currentUser = JWTAuth::parseToken()->authenticate();
$friendRequests = DB::table('relationships')
->where('user_two_id', '=', $currentUser->id)
->where('status', '=', '0')
->get();
$requestWithUsername = DB::table('users')
->where('id', '=', $friendRequests->user_one_id)
->get();
return $requestWithUsername;
}
它不起作用,我不确定哪种方法最容易达到我想要的输出。如何更改这些查询?
编辑:
查看响应后,这是工作代码:
$friendRequests = DB::table('users')
->select('users.id','users.username')
->join('relationships', 'relationships.user_one_id','=','users.id')
->where('relationships.status','=',0)
->where('relationships.user_two_id', '=', $currentUser->id)
->get();
【问题讨论】:
标签: php mysql sql laravel eloquent