连接表Laravel并保留第一个表ID

时间:2018-08-02 23:09:36

标签: laravel laravel-5 eloquent

我注意到,当您使用lefJoin()联接laravel中的表时,或者联接返回的id都是最后一个表之一。所以我想知道是否可以在laravel中联接两个表并保持第一个表的ID?

这是我的查询

$comments = DB::table('posts')
->where('posts.parent_id',$id)
->leftJoin('profiles', 'profiles.user_id', '=', 'posts.user_id')
->leftJoin('users', 'users.id', '=', 'posts.user_id')   
->get();

3 个答案:

答案 0 :(得分:0)

您应该显示您的代码。 但是尝试这样

$query = Users::where("users.user_id","=",$users->user_id)
               if ($request->exists('product_name')) {
                $query->join('products', 'users.user_id', 'products.user_id');
                $query->where('products.product_name', 'like', '%' . $request->input('product_name')
                . '%');
            }

            $test= $query->get();

答案 1 :(得分:0)

在这种情况下最好使用别名。例如

DB :: table('table_1')-> select('table1.column_name as alias_name','table_2.column_name as alias_name2')-> leftjoin('table_2','table_2.userId','=', 'table_1.id') -> get();

答案 2 :(得分:0)

您可以从第一个表中选择所有内容,而从第二个表中选择任何内容

DB::table('table_1')->join('table_2', 'table_1.id', '=', 'table_2.table_1_id') ->selectRaw('table_1.*') ->get();

示例DB::table('guests')->join('answers', 'guests.id', '=', 'answers.guest_id') ->selectRaw('guests.*')->get()

您还可以在此处从其他表格中选择任何内容

使用:->addSelect('table_2.column')