ThinkPHP多表查询
ThinkPHP多表查询处理
ThinkPHP多表连接查询处理
ThinkPHP关联查询(多表查询)
网上找到三种方法:table()、join()、原生SQL语句查询。(以下三种方法输出结果一致,并且很好的保留了ThinkPHP自己的分页功能)
第一种:table()方法
实例:需要连接查询两张表(表agent和表transinfo)
$Model=newModel();$sqlcount="selectcount(*)asmycountfromagenta,transinfotwheret.clientId=a.idandt.transTypelike'%agent%'anda.idin(".$agent_str.")";$listCount=$Model->query($sqlcount);$Page=newPage($listCount[0][mycount],2);$show=$Page->show();$list=$Model->table('agenta,transinfot')->where("t.clientId=a.idandt.transTypelike'%agent%'anda.idin(".$agent_str.")")->limit($Page->firstRow.','.$Page->listRows)->select();//echo$Model->getLastSql();$this->assign('list',$list);//赋值数据集$this->assign('page',$show);//赋值分页输出
第二种:join()方法
实例:需要连接查询两张表(表agent和表transinfo)
$Model=newModel();$agentModel=$Model->Table("agent");$listCount=$agentModel->join("ASaRIGHTJOINtransinfotONt.clientId=a.idandt.transTypelike'%agent%'anda.idin(".$agent_str.")")->field("count(*)asmycount")->select();$Page=newPage($listCount[0][mycount],2);$show=$Page->show();$Model=newModel();$agentModel=$Model->Table("agent");$list=$agentModel->join("ASaRIGHTJOINtransinfotONt.clientId=a.idandt.transTypelike'%agent%'anda.idin(".$agent_str.")orderbyt.idDESClimit".$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=newModel();$sqlcount="selectcount(*)asmycountfromagenta,transinfotwheret.clientId=a.id".$where."andt.transTypelike'%agent%'anda.idin(".$agent_str.")";$listCount=$Model->query($sqlcount);$Page=newPage($listCount[0]['mycount'],2);//实例化分页类传入总记录数和每页显示的记录数$show=$Page->show();$sqlList="selectt.*,a.*fromagenta,transinfotwheret.clientId=a.id".$where."andt.transTypelike'%agent%'anda.idin(".$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
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。