ホームページ >データベース >mysql チュートリアル >mysqlサブクエリの簡単な紹介
サブクエリの基本的な意味は、クエリ文(select文)内の特定の位置に現れる「クエリ文」です。この記事では主に mysql サブクエリの簡単な概要を説明し、皆様のお役に立てれば幸いです。
例:
修正後:
サブクエリ文「
select 5000
」を「全商品の平均価格を選択」に置き換えると実用的な意味になります。
サブクエリはメインクエリを提供します
メインクエリは、サブクエリが特定の結果データを取得した後にのみ実行されます
フォームでは、次のように表現できます:
select フィールドまたは式または、テーブル名、リンク結果からのサブクエリ[エイリアスとして]、またはサブクエリのフィールド、式、またはサブクエリの条件判断
つまり、サブクエリはこれらの場所に出現できます(それらの中で、同じ意味を持つため、実際に機能します) where);
サブクエリ、場所 (機会) で分割:
メインクエリの結果データとして | フォーム |
---|---|
を入力 | select c1,(tab2 から f1 を選択) as f11 from tab1; #ここでのサブクエリにはデータが 1 つだけ必要です (1 行 1 列、スカラー サブクエリ) |
メイン クエリの条件付きデータとして | select c1 from tab1 where c1 in ( select f1 from tab2 ); #ここでのサブクエリは複数のデータ (複数の行と 1 つの列、列サブクエリ) にすることができます |
メインクエリのソースデータとして | select c1 from (select f1 from c1, f2 from tab2) as t2 ; #ここでのサブクエリは、任意のクエリ結果 (テーブル サブクエリ) にすることができます |
比較演算子のサブクエリ
形式:
オペランド比較演算子(スカラーサブクエリ);
説明:
オペランドは実際には比較です。演算子、通常は単なるフィールド名です。
最高価格のアイテムを検索します。
select .... from XXX where id > 5;in の以前の使用法:
その場合、in サブクエリは次のようになります:select * from product where price = (select max(price) from product );
XX in (值1,值2,值3,....);例:
XX in (列子查询)
任意のサブクエリを使用します
select * from product where protype_id in( select protype_id from product_type where protype_name like ‘%电%’ );意味:
特定のオペランド(フィールド)が列サブクエリの任意の値の比較演算子を満たす場合、満たされているとみなされます
例:
操作数 比较运算符 any (列子查询);allを使用したサブクエリ:
形式:
select * from tab1 where id > any (select f1 from tab2);意味:
列サブクエリのすべてのデータ値に対する特定のオペランド (フィールド) のすべての比較演算子が満たされた場合にのみ条件が満たされます。 例:
操作数 比较运算符 all (列子查询);
some のサブクエリを使用する
existsを使用したクエリ
意味:形式:
select * from tab2 where f1 > all ( select id from tab1 );
説明:
存在するサブクエリの意味により、メインクエリではすべてが取り出されるか、何も取り出されないかのどちらかになることがよくあります。この意味(使用場面)に限定されると、基本的には実用的な意味を失います。
つまり:実際のアプリケーションでは、このサブクエリは独立したサブクエリではないことが多く、「メインクエリ」のデータソース (テーブル) との特定の関係 (通常は接続関係) を確立する必要があります。確立方法は「暗黙的」です。つまり、関係はコードには反映されませんが、内部的にはその関係の「実体」が存在します。
例:
製品テーブルのクエリカテゴリ名に「電気」という単語が含まれています
- このサブクエリの条件は、メインクエリの特定のフィールドと一定の相関関係を持つように設定する必要があります。通常、この判断が 2 つのテーブルの「元の接続条件」になります
最後の結論:
関連する推奨事項:
MySQL サブクエリの詳細な紹介
mysql サブクエリとは何ですか?サブクエリを使用してフィルタリングするにはどうすればよいですか?
MySQL サブクエリの最適化
以上がmysqlサブクエリの簡単な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。