在laravel中的WHERE子句之后加入

时间:2016-05-03 07:32:49

标签: mysql laravel laravel-5

我正在执行一个查询,其中所需的输出首先应用于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

非常重要

1 个答案:

答案 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();