join方法 import("@.ORG.Page"); $Form = M('gly'); $where=''; if ($_POST['qcx']=='查詢'){ if (!empty($_POST['username'])){ $where = 'glyname like \'%'.trim($_POST['username']).'%\''; } } $count = $Form->join('think_role ON think_gly.rid = think_role.id')->where($where)->count('think_gly.id'); //計算總數 $Page = new Page($count, 10); $list = $Form->field('think_gly.*,think_role.name as rolename')->join('think_role on think_gly.rid=think_role.id' )->where($where)->limit($Page->firstRow. ',' . $Page->listRows)->order('think_role.id desc')->select(); // 模擬設置分頁額外傳入的參數 // 設置分頁顯示 $Page->setConfig('header', '條數據'); $Page->setConfig('first', '<上頁'); $Page->setConfig('last', '下頁>'); $page = $Page->show(); $this->assign("page", $page); $this->assign("list", $list); $this->display();
import("@.ORG.Page"); $Form = M('gly'); $where=''; if ($_POST['qcx']=='查詢'){ if (!empty($_POST['username'])){ $where = 'glyname like \'%'.trim($_POST['username']).'%\''; } } $count = $Form->table('think_role a,think_gly b')->where('a.id=b.rid')->count('b.id'); //計算總數 $Page = new Page($count, 10); $list = $Form->field('b.*,a.name as rolename')->table('think_role a,think_gly b' )->where('a.id=b.rid')->limit($Page->firstRow. ',' . $Page->listRows)->order('b.id desc')->select(); // 模擬設置分頁額外傳入的參數 // 設置分頁顯示 $Page->setConfig('header', '條數據'); $Page->setConfig('first', '<上頁'); $Page->setConfig('last', '下頁>'); $page = $Page->show(); $this->assign("page", $page); $this->assign("list", $list); $this->display();
sql的執行效果如下: SELECT COUNT(b.id) AS tp_count FROM think_role a,think_gly b WHERE a.id=b.rid LIMIT 1; SELECT b.*,a.name as rolename FROM think_role a,think_gly b WHERE a.id=b.rid ORDER BY b.id desc LIMIT 0,10 參考的資料如下: THINKPHP 中關聯查詢(多表查詢)可以使用 table() 方法或和join方法,請看示例: 聯合查詢 1、原生查詢 $sql = 'select f.*,s.sort_name from think_form as f, think_sort as s where f.sort_id=s.sort_id order by f.id DESC limit 3'; $list = $Form->query($sql); 2、join() 兩表查詢 $list = $Form->join('think_sort ON think_form.sort_id = think_sort.sort_id' )->select(); 3、join() 多表查詢 $list = $Form->join('think_sort ON think_form.sort_id = think_sort.sort_id' )->join('think_brand ON think_form.brand_id = think_brand.brand_id' )->select(); 4、table() $list = $user->table('user_status stats, user_profile profile')->where('stats.id = profile.typeid')->field('stats.id as id, stats.display as display, profile.title as title,profile.content as content')->order('stats.id desc' )->select();