ホームページ >Java >&#&チュートリアル >ThinkPHP で MySQL 複数テーブル結合クエリを実装する方法

ThinkPHP で MySQL 複数テーブル結合クエリを実装する方法

不言
不言オリジナル
2018-09-12 16:33:035352ブラウズ

ThinkPHP で MySQL 複数テーブル結合クエリを実装する方法: まずモデルをインスタンス化し、次に table() メソッドまたは join() メソッドを使用してクエリを実行します。例: [table('sp_user as t1, sp_dept as t2') ]。

ThinkPHP で MySQL 複数テーブル結合クエリを実装する方法

この記事の内容は、ThinkPHP で MySQL の複数テーブルの結合クエリを実装する方法に関するものです。必要な方は参考にしていただければ幸いです。あなたに助けられました。

推奨ビデオチュートリアル:「mysqlチュートリアル」、「PHPチュートリアル

図に示すように2つのテーブルを作成します:

sp_userテーブル:

sp_deptテーブル:

目的: dept_idを渡すof sp_user 所属する部門、つまり sp_dept 内の名前を照会します。

ネイティブ sq メソッド 1:

select t1.*,t2.name as deptname from sp_user as t1,sp_dept as t2 where t1.dept_id = t2.id;

ネイティブ sq メソッド 2:

select t1.*,t2.name as deptname from sp_user as t1 left join sp_dept as t2 on t1.dept_id = t2.id;

結果は同じです:

ThinkPHP に対応して、次の 2 つのメソッド table と join もあります:

    //多表联查(table)
    public function test18() {
        //实例化模型
        $model = M();
        //查询
        $result =$model->field('t1.*, t2.name as deptname')->table('sp_user as t1, sp_dept as t2')
             ->where('t1.dept_id = t2.id')->select();
        dump($result);
    }
    //多表联查(join)
    public function test19() {
        //实例化模型
        $model = M('User');
        //查询
        $result = $model->field('t1.*, t2.name as deptname')->alias('t1')
             ->join('left join sp_dept as t2 on t1.dept_id = t2.id')->select();
        dump($result);
    }

テスト結果は同じ:

要約すると、ThinkPHP はテーブルメソッドと結合メソッドを通じて複数テーブルの結合クエリを実行できます。テスト環境は ThinkPHP3.2.3 で、テーブルのプレフィックスは sp_

です。

関連する推奨事項:

2 つのテーブルをクエリする方法 (thinkphp)

ThinkPHP の関連クエリの例、ThinkPHP 関連の例

以上がThinkPHP で MySQL 複数テーブル結合クエリを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。