我正在执行一个查询,其中所需的输出首先应用于where子句然后我想执行正确的join.I有这个查询但它执行第一次加入然后在哪里。谢谢你为你提供任何帮助。
这是我的查询
$friends = friend_list::where('friend_lists.user_id', '=', $id)
->rightJoin('users as u1', 'u1.id', '=', 'friend_lists.user_id2')
->where('friend_lists.user_id2','!=',$id)
->where('u1.id','!=',$id)
->orwhere('status',null)
->get();
编辑:
我正在实施朋友请求部分
其中用户表包含... user(id,name,..,..)friend_list(userid,userid2,status)
在friend_list
中显示与其他朋友的状态。我正确地加入friend_list
。如果状态为null
,则该用户没有当前用户的行。所以状态为空并显示add friend
.so null值对于正确加入user table
答案 0 :(得分:1)
将WHERE更改为另一个JOIN条件
$friends = friend_list::rightJoin('users as u1', function($join) {
$join->on('u1.id', '=', 'friend_lists.user_id2')
->where('friend_lists.user_id', '=', $id);
})
->where('friend_lists.user_id2','!=',$id)
->where('u1.id','!=',$id)
->orwhere('status',null)
->get();