我注意到,当您使用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();
答案 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')