ホームページ  >  記事  >  バックエンド開発  >  ThinkPhp マルチテーブルクエリ関連の問題、助けてください

ThinkPhp マルチテーブルクエリ関連の問題、助けてください

WBOY
WBOYオリジナル
2016-06-13 13:52:54870ブラウズ

ThinkPhp の複数テーブルのクエリの問題、助けてください

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
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 テーブルの外部キーです。誰かヒーローが私を助けてくれますか?何が問題ですか?
また、これでは大文字と小文字が区別されますか?
追記: 私は PHP はわかりませんが、上司にバグを買うように頼まれました。 。 。

-----解決策---------
$list=$Graduate->limit($p->firstRow.','.$p->listRows)->join('GRADUATE.PERSONID=PERSON.PERSONID および PERSON.FLG の LEFT OUTER JOIN PERSON =0')->where($map)->order('GRADUATE.GRADUATEID DESC')->findAll();
後:
echo $Graduate->getLastSql();
最後の SQL 実行ステートメントを見て、SQL にエラーがあるかどうかを確認します
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。