首页 > 解决方案 > 从两个表中获取数据并忽略 laravel 中的重复值

问题描述

我在 laravel 有两张桌子。table_2 有一个外键,即 users_id,所以我想从两个表中获取数据并删除重复的条目。为此,我在控制器中创建了两个查询

$new=DB::table('tabl-1')
              ->join('tbl2','tbl1.id','=','tbl2.foreign_key') 
              ->orWhereDate('created_at','<' ,Carbon::today())
              ->orWhereDate('created_at', Carbon::today())
              ->orWhereNull('created_at')
              ->select('tbl_1.created_at as date','tbl1.foreign_key as data_id')
              ->where('user_id',$users_id)
              ->get()
              ->toArray();

$old = DB::table('tbl-2')
              ->join('tbl1','tbl2.foreign_key','=','tbl1.id') 
              ->where('user_id',$users_id)
              ->whereRaw('id IN (select MAX(id) FROM tbl2 GROUP BY foreign_key)')
              ->select('tbl_2.created_at as date','tbl2.foreign_key as data_id')
                    ->get()
                    ->toArray();
$data=array_merge($old,$new);

旧数组工作正常,但新数组打印 data.id 的重复值,我应该怎么做才能从旧数组中获取所有数据,但是当移入新数组时,它显示除了旧数组中已经显示的所有行

标签: mysqllaravel

解决方案


推荐阅读