溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ThinkPHP多表查詢

發布時間:2020-07-18 22:19:37 來源:網絡 閱讀:1842 作者:許琴 欄目:web開發

ThinkPHP多表查詢處理

ThinkPHP多表連接查詢處理

ThinkPHP關聯查詢(多表查詢)


網上找到三種方法:table()、join()、原生SQL語句查詢。(以下三種方法輸出結果一致,并且很好的保留了ThinkPHP自己的分頁功能)


第一種:table()方法

實例:需要連接查詢兩張表(表agent和表transinfo)

$Model=new Model();
$sqlcount="select count(*) as mycount  from agent a ,transinfo t where t.clientId=a.id and t.transType like '%agent%' and a.id in (".$agent_str.")";
$listCount = $Model ->query($sqlcount);
$Page = new Page ( $listCount[0][mycount], 2 );
$show = $Page->show ();
$list = $Model->table('agent a, transinfo t')->where("t.clientId=a.id and t.transType like '%agent%' and a.id in (".$agent_str.")")->limit ( $Page->firstRow . ',' . $Page->listRows )->select();
//echo $Model->getLastSql();
$this->assign('list',$list);// 賦值數據集
$this->assign('page',$show);// 賦值分頁輸出



第二種:join()方法

實例:需要連接查詢兩張表(表agent和表transinfo)


$Model=new Model();
$agentModel = $Model->Table("agent");
$listCount = $agentModel->join(" AS a RIGHT JOIN transinfo t ON t.clientId=a.id and t.transType like '%agent%' and a.id in (".$agent_str.")")
			->field("count(*) as mycount")
			->select();
$Page = new Page ( $listCount[0][mycount], 2 );
$show = $Page->show ();

$Model=new Model();
$agentModel = $Model->Table("agent");
$list =	$agentModel->join(" AS a RIGHT JOIN transinfo t ON t.clientId=a.id and t.transType like '%agent%' and a.id in (".$agent_str.") order by t.id DESC limit ".$Page->firstRow.",".$Page->listRows)
			->field("a.*,t.*")
			->select();
//echo $agentModel->getLastSql();
$this->assign('list',$list);// 賦值數據集
$this->assign('page',$show);// 賦值分頁輸出

提示:你也可以這樣實例化更簡潔(官方推薦的):$agentModel = M('Agent'); // 實例化User對象



第三種:原生SQL語句查詢法

$Model=new Model();
$sqlcount="select count(*) as mycount  from agent a ,transinfo t where t.clientId=a.id ".$where. " and t.transType like '%agent%' and a.id in (".$agent_str.")";
$listCount = $Model ->query($sqlcount);
$Page = new Page($listCount[0]['mycount'],2);// 實例化分頁類 傳入總記錄數和每頁顯示的記錄數
$show = $Page->show();
$sqlList="select t.*,a.* from agent a ,transinfo t where t.clientId=a.id ".$where. " and t.transType like '%agent%' and a.id in (".$agent_str.") limit {$Page->firstRow},{$Page->listRows}";
$list = $Model ->query($sqlList);
$this->assign('list',$list);// 賦值數據集
$this->assign('page',$show);// 賦值分頁輸出




參考資料:

http://hi.baidu.com/wjlhh001/item/18d9a91031081b5e2a3e22af

http://www.yunda51.com/304.html

http://www.w3school.com.cn/sql/sql_join_right.asp



END



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女