日期:2014-05-17  浏览次数:20669 次

ThinkPhp多表查询的问题,求帮助
PHP code

public function graduate(){
        $this->checkLogin();//判断登录
        $Graduate=M('Graduate');
        $category=$_GET['category'];
        $map['FLG']='0';
        $map['LAN']='01';
        import("@.ORG.Page");
        $count = $Graduate->join('LEFT OUTER JOIN PERSON ON(GRADUATE.PERSONID=PERSON.PERSONID andPERSON.FLG='.$FLG.')')->where($map)->count();
        $p = new Page ($count, 10 );
        $list=$Graduate->limit($p->firstRow.','.$p->listRows)->join('LEFT OUTER JOIN PERSON ON GRADUATE.PERSONID=PERSON.PERSONID and PERSON.FLG=0')->where($map)->order('GRADUATE.GRADUATEID DESC')->findAll();
        $page = $p->show ();
        $pagenumber=$p->nowPage;
        $this->assign ("pagenumber", $pagenumber-1 );
        $this->assign ("page", $page );
        $this->assign ("list", $list );
        $this->display();
    }



Graduate表的personID是Person表的外键,join后查不到值,哪个大侠帮看看什么问题?
还有,这东西分大小写么?
ps:不会php,但是boss让买个bug。。。

------解决方案--------------------
$list=$Graduate->limit($p->firstRow.','.$p->listRows)->join('LEFT OUTER JOIN PERSON ON GRADUATE.PERSONID=PERSON.PERSONID and PERSON.FLG=0')->where($map)->order('GRADUATE.GRADUATEID DESC')->findAll();
后面:
echo $Graduate->getLastSql();
看下最后sql执行语句是什么,是否sql有错误