php MySQL クエリ ステートメントは次のように記述されます: [select * from Goods where Goods_id in (select max(goods_id) from Goods group by cat_id);]。
#いわゆるサブクエリ ステートメントは、最初にステートメントを通じて結果をクエリし、次にクエリ ステートメントを通じてその結果から再度クエリを実行します。サブクエリ ステートメントには通常、次の 3 種類があります。事例を使って説明しましょう。
(ビデオ チュートリアルの推奨: php ビデオ チュートリアル)
ケース: [例 1] の各カテゴリで最新の製品情報をクエリします。
単一の文でクエリを実行しても、結果を取得することはできません。以下は誤りです。
select max(goods_id),cat_id,goods_name from goods group by cat_id;
このように、各カテゴリの最新の商品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 によってクエリされた結果セットには、上記のコードの赤い部分などのエイリアスを指定する必要があります。それ以外の場合は、エラーが報告されます。
このようにして、各カテゴリの最新の製品情報もクエリします。
3. サブクエリ ステートメントが存在します:
タイトル: [例 1] どの列に製品があるかをクエリします。カテゴリテーブル名:category
select * from category where exists( select * from goods where goods.cat_id=category.cat_id )
前文のありにチェック(商品テーブルのカテゴリID=カテゴリテーブルのカテゴリIDの場合)、商品はありますか?存在する場合はこのカテゴリの情報を照会し、存在しない場合はこのカテゴリを除外します。最終的な結果は、製品の製品分類情報が照会されることです。
さて、ここでは一般的に使用される 3 つの mysql データベース サブクエリ ステートメントを紹介します。where サブクエリ ステートメント、from サブクエリ ステートメント、existes サブクエリ ステートメントです。もちろん、サブクエリ ステートメントを使用したくない場合は、サブクエリ ステートメントを 2 つのステートメントに分割して実行することもでき、結果は同じになります。
関連する推奨事項: php トレーニング
以上がphp mysqlクエリ文の書き方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。