thinkphp で複数のデータをクエリする方法

藏色散人
リリース: 2022-12-05 09:26:45
オリジナル
2115 人が閲覧しました

thinkphp で複数のデータをクエリする方法: 1. "$Model->table('think_blog blog, think_type type')" などの構文で、Table メソッドを使用して複数のテーブルをクエリします。 Join メソッドで Query をクエリするには、「$Model->join('work ON Artist.id = work.artist_id')」のようなコードを使用します。

thinkphp で複数のデータをクエリする方法

このチュートリアルの動作環境: 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート