這篇文章主要介紹了thinkphp中的多表關聯查詢的執行個體詳解的相關資料,希望通過本文能協助到大家,讓大家理解掌握這部分內容,需要的朋友可以參考下
thinkphp中的多表關聯查詢的執行個體詳解
在進行後端管理系統的編程的時候一般會使用架構來進行頁面的快速搭建,我最近使用比較多的就是thinkphp架構,thinkphp架構的應用其實就是把前端和後端進行分割管理,前端使用者登入查詢系統放在thinkphp中的home檔案夾中進行管理,後端管理系統放在thinkphp中的admin檔案夾中進行管理。對了,在使用thinkphp架構的時候是是要用到mvc架構的,mvc架構就是model(資料模型)、view(視圖)、controller(控制器)的結構,這裡介面是由視圖來進行控制,控制器的作用就是管理檢視和控制器,詳細的結構可以查詢thinkphp的文檔進行學習。
今天要說的就是在後端管理系統中遇到的資料庫表的關聯查詢應用。
首先要說的就是在thinkphp中的查詢語句的應用,當然這裡並不是簡單的對一個資料表的查詢工作,而是進行多表之間的關聯查詢,這裡面進行資料的關聯有兩種方法join和table方法 。
1、首先介紹的是table方法進行多表之間的關聯查詢
最前面的M是thinkphp中的M模型,作用就是選擇資料庫中的資料表,table中選擇的是要關聯的哪些表,where是進行條件關聯,field的作用其實就是一個過濾作用,可以把你想要的或者有用的資訊輸出出來,這樣對錶進行關聯之後的結果就是剩下自己想要的資料結構了。
public function orderList(){ $User=M("t_order"); /*兩個表的關聯查詢得到等級值*/ $userinfo = $User->table('t_order,t_commodity,t_user')->where('t_order.cname = t_commodity.cname and t_order.uname = t_user.uname ')->field('t_order_id,t_order.orderid,t_order.cname')->select(); $this->assign("userInfo",$userinfo); $this->display("order-list");}
2、join方法進行多表之間的關聯查詢
這裡面的表的關聯的區別就是join使用了on來進行表的關聯,剩下的部分其實就是一樣,where中是關聯的條件,field中是過濾的資訊(對接下來有用的資訊)
public function getBanner(){ $bannerid=1; $banner=M("banner_item"); $result=$banner->join('image ON banner_item.img_id = image.id')->where("banner_item.banner_id=".$bannerid)->field("key_word,type,banner_id,url,from")->select(); echo json_encode($result);}