php SQL サブクエリ ステートメントは、最初にステートメントを通じて結果をクエリし、次にクエリ ステートメントを通じて結果から再度クエリを実行します。たとえば、「select max(goods_id),cat_id,goods_name from Goods group」 by cat 」。
推奨: 「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 サイトの他の関連記事を参照してください。