ホームページ >バックエンド開発 >PHPの問題 >PHPマルチテーブルクエリサブクエリステートメント

PHPマルチテーブルクエリサブクエリステートメント

藏色散人
藏色散人オリジナル
2020-08-07 09:57:482315ブラウズ

php SQL サブクエリ ステートメントは、最初にステートメントを通じて結果をクエリし、次にクエリ ステートメントを通じて結果から再度クエリを実行します。たとえば、「select max(goods_id),cat_id,goods_name from Goods group」 by cat 」。

PHPマルチテーブルクエリサブクエリステートメント

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

いわゆるサブクエリ ステートメント。つまり、最初にステートメントを通じて結果をクエリし、次にクエリ ステートメントを通じて結果から再度クエリを実行します。サブクエリ ステートメントには通常、次の 3 種類があります。事例を使って説明しましょう。

ケース: [例 1] の各カテゴリの最新の製品情報を問い合わせます。

#単一の文でクエリを実行しても、結果を取得することはできません。以下は間違っています:

##select max(goods_id),cat_id,goods_name from Goods group by cat_id;

Inこのようにすると、各カテゴリの最新の商品ID番号「goods_id」が取得されますが、「goods_name」などその他の情報は古いものになります。したがって、カテゴリごとに最新の製品情報を取得するには、個別にクエリを実行するか、サブクエリを使用する必要があります。

1: where サブクエリ ステートメント。

select * from Goods where Goods_id in ( select max(goods_id) from Goods group by cat_id);

このコードでは、まず group by を使用して各カテゴリの最新の製品 ID をクエリし、次に where...in () 条件文を使用して各カテゴリの最新の製品 ID の製品情報をクエリします。ここでは、where のサブクエリ文としての group by 文を示します。

2: サブクエリ ステートメントから。

select * from (select * from Goods order by cat_id,goods_id desc) as gk group by cat_id;

# #From subquery は、上の太字のコードのように、select クエリの結果をテーブルとして使用することです。注: select によってクエリされた結果セットには、上記のコードの赤い部分などのエイリアスを指定する必要があります。それ以外の場合は、エラーが報告されます。

このようにして、各カテゴリの最新の製品情報もクエリします。

3: サブクエリ ステートメントが存在します:

タイトル: [例 1] どの列に製品があるかをクエリします。カテゴリテーブル名: category

select * from category where names(select * from Goods where Goods.cat_id=category.cat_id )

前文の存在チェック(商品テーブルのカテゴリID=カテゴリテーブルのカテゴリIDの場合)、商品はありますか?存在する場合はこのカテゴリの情報を照会し、存在しない場合はこのカテゴリを除外します。最終的な結果は、製品の製品分類情報が照会されることです。

さて、ここでは一般的に使用される 3 つの mysql データベース サブクエリ ステートメントを紹介します。where サブクエリ ステートメント、from サブクエリ ステートメント、existes サブクエリ ステートメントです。もちろん、サブクエリ ステートメントを使用したくない場合は、サブクエリ ステートメントを 2 つのステートメントに分割して実行することもでき、結果は同じになります。

以上がPHPマルチテーブルクエリサブクエリステートメントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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