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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM