关于连接查询laravel 4.2

时间:2016-07-18 09:52:34

标签: mysql laravel join laravel-4 where

我有2个桌子'用户'和' instantUsers'。我想在users.id = instantUsers.user_id上加入它们,并希望在结果上添加2 where子句。我不知道如何做到这两点。我使用的查询是 -

DB::table('users')
    ->join('instantUsers', function($join) use ($userId) {
        $join->on('users.id', '=', 'instantUsers.user_id');
    })
    ->where('instantUsers.instantMode', '=', '1')
    ->where (function($query) use ($userId) {
        $query->where('instantUsers.user_id', '!=', $userId);
    })
    ->get();

2 个答案:

答案 0 :(得分:0)

你可以尝试这个,也许这会对你有所帮助:

DB::table('users as table1')->join('instantUsers as table2','table1.id','=','table2.fkId') ->where('table2.instantMode','=','1')->where('table2.user_id','!=',$userId)->get();

答案 1 :(得分:0)

您的'instantUsers.instantMode','=','1'表达式可以在联接中完成,从而提高性能。 我会这样写的

DB::table('users')
    ->join('instantUsers', function($join) use ($userId) {
        $join
            ->on('users.id', '=', 'instantUsers.user_id')
            ->on('instantUsers.instantMode', '=', 1);
    })
    ->where('users.id', '!=', $userId)
    ->get();