mysqlサブクエリとは何ですか?
サブクエリは、内部クエリと比較して、内部クエリを含むものを外部クエリと呼びます。サブクエリを使用すると、1 つのクエリを別のクエリ内にネストできます。
mysql データベース サブクエリ ステートメントの特徴: サブクエリは、単一の値を返す限り、式が使用できる場所であればどこでも使用できます。サブクエリは戻り値の数、サブクエリの外部依存関係、比較演算子に基づいています。ページング クエリ SQL ステートメントでよく使用されます。
サブクエリは、select、insert、update、delete などのステートメントでネストできます
ほとんどの場合、サブクエリは中間結果セットとして機能します
サブクエリのネストは可能です、ネストの制限はメモリと式の複雑さによって異なります
式が使用できる場所であればどこでも、単一の値を返す限りサブクエリを使用できます
可能戻り値の数に応じて、スカラーサブクエリ、多値サブクエリ
に分割されます: サブクエリの外部依存関係: 独立サブクエリ、相関サブクエリ
比較演算子の違いに応じて: IN、EXISTS、ANY 、SOME、ALL、その他の形式
まず、2つのテーブル(学生テーブルと教師テーブル)を作成します
# 创建学生表 mysql> create table tb_student( -> stu_ID long, -> class varchar(5), -> score int -> ); Query OK, 0 rows affected (0.23 sec) # 创建教师表 mysql> create table tb_teacher( -> tea_ID long, -> class varchar(5), -> age int -> ); Query OK, 0 rows affected (0.49 sec)
テーブルにいくつかの値を挿入します
insert into tb_student values(1, "A", 20); insert into tb_student values(2, "A", 30); insert into tb_student values(3, "A", 70); insert into tb_student values(4, "B", 60); insert into tb_student values(5, "B", 70); insert into tb_student values(6, "B", 80); insert into tb_teacher values(1, "A", 25); insert into tb_teacher values(2, "B", 40);
準備が整ったので、サブクエリの練習をしてみましょう
例1:各クラスの教師IDとクラスの平均点
mysql> select tea_ID, -> (select avg(score) from tb_student as s where s.class = t.class group by class) -> as Avg from tb_teacher as t; +--------+---------+ | tea_ID | Avg | +--------+---------+ | 1 | 40.0000 | | 2 | 70.0000 | +--------+---------+ 2 rows in set (0.00 sec)
例2:各クラスの教師の年齢と人数クラスに合格した学生 (60 が合格ライン)
mysql> select age, -> (select count(*) from tb_student as s where s.class = t.class && s.score >= 60 group by class) -> as Count from tb_teacher as t order by Count desc; +------+-------+ | age | Count | +------+-------+ | 40 | 3 | | 25 | 1 | +------+-------+ 2 rows in set (0.00 sec)
関連する推奨事項:
mysql ページング クエリ ステートメント データベース クエリ_MySQL
ビデオ :高度なデータ クエリ - where 句- 6 日間で MySQL を遊んでみましょう
以上がmysqlサブクエリとは何ですか? Mysqlデータベースサブクエリの実際の使用例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。