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中,实际操作的时候就是你添加Aname字段

如果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中,实际操作的时候就是你修改Aname字段

如果sql语句查询到B表real_name字段名称对应那么对应的B表的id,将添加到A表对应的user_id里面,如果没有和B表的real_name对应那么则将id

posted @ 2020-01-18 16:21  以己为镜  阅读(2108)  评论(0编辑  收藏  举报