sql查询如何将A表数据name字段对应B表name字段得到对应的B表id主键然后添加A到表usel_id中
1.写这个的原因
最近在写公司项目的时候一个功能很是让我头疼如标题看到的一样,平时我们一般都只负责数据表的查询或者连表查询某一个字段和A表字段一起显示出来。
但是添加到A表还是头一次,第一天想了很久都没有想出来很是头疼,于是只好把希望放在第二天谁知道一早上的就
灵光乍现,思路泉涌不息,在我的努力下终于写出来了☺
2.1.1 car_info表2.首先上数据库表
2.1.2 users表
好了废话不多说上代码。。。。
3.信息添加功能
1 public function create(Request $request){ 2 $input=$request->except('_token'); 3 $res=\DB::table('users')->select('id')->where(['real_name'=>$input['name']])->get(); 4 if ($res!=null){ 5 foreach ($res as $value){ 6 $data=\DB::table('car_info')->insert(['name'=>$input['name'],'principal'=>$input['principal'],'user_id'=>$value->id]); 7 if($data){ 8 return redirect('admin/car_info'); 9 }else{ 10 return back(); 11 } 12 } 13 } 14 $name=\DB::table('car_info')->insert(['name'=>$input['name'],'principal'=>$input['principal']]); 15 if($name){ 16 return redirect('admin/car_info'); 17 }else{ 18 return back(); 19 } 20 }
上诉功能实现的是添加的时候如果A(car_info)表的name对应B表的real_name相等得到B(users)表的主键,并且将得到的主键添加到A表的user_id中,实际操作的时候就是你添加A表name字段
如果sql语句查询到B表real_name字段名称对应那么对应的B表的id,将添加到A表对应的user_id里面,如果没有和B表的real_name对应那么则正常添加信息
4. 信息修改功能
有添加当然有修改啦好了废话不多说上干货代码伺候
1 //修改 2 public function update(Request $request){ 3 $input=$request->except('_token');//得到除却token之外的全部信息 4 $res=\DB::table('users')->select('id')->where(['real_name'=>$input['name']])->get(); 5 6 if($res!=null){ 7 foreach ($res as $value){ 8 $data=\DB::table('car_info') 9 ->where(['id'=>$input['id']])->update(['id'=>$input['id'],'name'=>$input['name'],'principal'=>$input['principal'],'user_id'=>$value->id]); 10 11 if($data){ 12 return redirect('admin/car_info'); 13 }else{ 14 return back(); 15 } 16 } 17 } 18 $name=\DB::table('car_info')->where(['id'=>$input['id']])->update(['id'=>$input['id'],'name'=>$input['name'],'principal'=>$input['principal'],'user_id'=>null]); 19 if($name){ 20 return redirect('admin/car_info'); 21 }else{ 22 return back(); 23 } 24 }
上诉功能实现的是修改的时候如果A(car_info)表的name对应B表的real_name相等得到B(users)表的主键,并且将得到的主键添加到A表的user_id中,实际操作的时候就是你修改A表name字段
如果sql语句查询到B表real_name字段名称对应那么对应的B表的id,将添加到A表对应的user_id里面,如果没有和B表的real_name对应那么则将id为空!