Thinkphp5(tp5)Db的一些聯查的用法 join 命名alias 時間戳轉日期時間 (Mysql)


二話不說直接上代碼

 $createtime = [ 'FROM_UNIXTIME(gz.createtime,"%Y-%m-%d %H:%i:%s") as date']; 
            // gz是alias起的別名  where隨便加條件   join 先和關聯的表起別名 然后和關聯的表建立關系   Q496631085
            $gzList = Db::name('shop_gz')
                ->alias('gz')
                ->where('gz.gzstatus','0')
                ->where('gz.workerid',1])
                ->join('shop_user us', 'gz.uid=us.id','LEFT')//關聯用戶表      //LEFT是如果沒有數據也要返回查詢到的shop_gz這個表的數據
                ->field('us.nickname,us.headimage,us.user_name,us.mobile,gz.*')  //顯示哪些字段  可以用*表示所有的字段
                ->field($createtime)   //把時間戳轉成日期 時間
                ->select();

來一個多功能接口的demo

 1     // 翻頁  標簽  店鋪id 員工id   點贊  模糊搜索作品名  
 2     public function get_worksList($page=1,$tag=null,$storesid=null,$workerid=null,$dianzan=null,$name=null)
 3     {
 4 
 5         if($tag){ $tag = "w.tag LIKE '%{$tag}%'";}
 6         if($storesid){ $storesid = ['w.storesid'=>$storesid];}
 7         if($workerid){ $workerid = ['w.workerid'=>$workerid];}//2020-8-24 12:37:10 新增具體手藝人id
 8         if($name)    { $name = "w.name LIKE '%{$name}%'";}
 9         if($dianzan){ $dianzan = ['dz.uid'=>$this->uid];}
10         $hot_works = Db::name('shop_works')
11         
12         ->alias('w')
13         ->where($storesid)
14         ->where($workerid)//2020-8-24 12:37:10 新增具體手藝人id
15         ->where($tag)
16         ->where($name)
17 
18         ->where('w.state_switch',1)
19         ->join('shop_worker wc', 'w.workerid=wc.id')
20         ->join('shop_stores sto', 'w.storesid=sto.id','LEFT')//關聯職業表 
21         ->join('shop_stores_profession ps', 'wc.professionid=ps.id','LEFT')//關聯職業表 
22         ->join('shop_dz dz', 'w.id=dz.worksid and dz.uid='.$this->uid,'LEFT')//關聯關注表          
23         ->where($dianzan)
24         ->field('dz.id as dz,w.*')
25         ->field('wc.name as workername,wc.workerimage,w.*')
26         ->field('ps.name as professionname')
27         ->field('sto.name as storesname,sto.id as storesid,sto.logoimage')//店鋪字段   名稱  id   店鋪頭像
28         ->order('w.views desc')
29         ->page($page,12)
30         ->select();
31 
32 
33         //服務列表  
34         foreach($hot_works as $key=>$works){
35             $service = Db::name('shop_stores_service')->where('id','in',$works['serviceids'])->field('id,servicename')->select();
36             $hot_works[$key]['servicelist'] = $service;     
37             
38             $hot_works[$key]['createtime'] = date('Y-m-d H:i:s',$works['createtime']);
39         }
40 
41 
42         return $hot_works;
43     }

//為什么要foreach  因為這個字段必須是個列表 也就是查詢的這個是一個數組下面還有數組 也就是二維數組!


免責聲明!

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



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