thinkphp で複数のデータをクエリする方法: 1. "$Model->table('think_blog blog, think_type type')" などの構文で、Table メソッドを使用して複数のテーブルをクエリします。 Join メソッドで Query をクエリするには、「$Model->join('work ON Artist.id = work.artist_id')」のようなコードを使用します。
このチュートリアルの動作環境: Windows 7 システム、ThinkPHP バージョン 5、Dell G3 コンピューター。
thinkphp で複数のデータをクエリするにはどうすればよいですか?
THINKPHP ミディアム関連クエリ (複数テーブル クエリ)
THINKPHP ミディアム関連クエリ (複数テーブル クエリ) は、 table() メソッドまたはjoin メソッド, 例を参照してください:
1. テーブル メソッド: 操作するデータ テーブルの名前を定義します。現在の操作のデータ テーブルの名前を動的に変更できます。データ テーブルの完全な名前 (プレフィックスを含む)。エイリアスを使用できます。例:
$Model->Table('think_user user') ->where('status>1') ->select(); $Model->table('think_blog blog,think_type type') ->where('blog.typeid=type.id') ->field('blog.id as id,blog.title,blog.content,type.typename as type') ->order('blog.id desc' ) ->limit(5) ->select();
Table メソッドのパラメータは文字列と配列をサポートします。配列モードでの使用法:
$Model->Table(array('think_user'=>'user','think_group'=>'group')) ->where('status>1') ->select();
配列モード定義を使用する利点は、テーブル名とキーワード間の競合によるエラーを回避できることです。
注: テーブル メソッドが定義されていない場合、現在のモデルに対応する、または現在のモデルによって定義されたデータ テーブルがデフォルトで自動的に取得されます。
2. 結合メソッド: クエリ結合のサポート。結合メソッドのパラメーターは文字列と配列をサポートしており、結合メソッドはコヒーレントな操作で複数回呼び出すことができる唯一のメソッドです。 。例:
$Model->join('work ON artist.id = work.artist_id') ->join('card ON artist.card_id = card.id') ->select(); //Left Join $Model->table('user U') ->join('news N on U.id=N.cid') ->field('U.*,N.*') ->order('id desc') ->limit('8') ->findall();
LEFT JOIN メソッドはデフォルトで使用されます。他の JOIN メソッドを使用する必要がある場合は、これを
$Model->join('RIGHT JOIN work ON artist.id = work.artist_id') ->select(); //Right Join $Model->table('user U') ->join(array('right','news N on U.id=N.cid')) ->field('U.*,N.*') ->order('id desc') ->limit('8') ->findall();
If のパラメータに変更できます。 join メソッドは配列を使用します。join メソッドは 1 回のみ使用でき、string メソッドと組み合わせて使用することはできません。
$Model->join(array(' work ON artist.id = work.artist_id', 'card ON artist.card_id = card.id')) ->select()
この一貫した操作方法を使用すると、コードの明瞭さとデータ クエリの開発効率を効果的に向上させることができます。
連続して操作された SQL ステートメントを表示する方法:
echo $Model->getLastSql(); //打印一下SQL语句,查看一下
例 2:
1, 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();
2.1 , join()2 テーブル クエリ
$user = new Model('user'); $list = $user->join('RIGHT JOIN user_profile ON user_stats.id = user_profile.typeid' );
2.2、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();
3、ネイティブ クエリ
$Model = new Model(); $sql = 'select a.id,a.title,b.content from think_test1 as a, think_test2 as b where a.id=b.id '.$map.' order by a.id '.$sort.' limit '.$p->firstRow.','.$p->listRows; $voList = $Model->query($sql);
推奨学習: 「thinkPHP ビデオ チュートリアル」 >>
以上がthinkphp で複数のデータをクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。