MySQLのテーブルのサブクエリのクエリ

サブクエリの概念

  1. 別のクエリの条件としてクエリの結果

  2. そこネストされたクエリは、クエリが内部サブクエリと呼ばれています

  3. 括弧を使用するサブクエリ

 

3例サブクエリの結果

  1. サブクエリの結果は、単一の分離され

  2. サブクエリの結果は、複数行の単一列であります

  3. サブクエリの結果は、複数の列と行であります

 

サブクエリの結果の値であります

SELECTクエリフィールドFROMテーブルWHEREフィールド=(サブクエリ)。

以下のような:

学生は、個人情報フォームを作成します

CREATE  TABLEの学生(
    同上INT30 )、
    名前VARCHAR10 )、
    年齢INT4 )、
    性別VARCHAR25 )、
     PRIMARY  KEY (ID) 
)。

テーブルの達成を作成します。

CREATE  TABLEのコースを(
    同上INT30 )、
     JavaのINT5 )、
     PythonのINT5 )、
     MySQLのINT5 )、
     HadoopのINT5 )、
     C INT5 )、
     PHP INT5 )、
     LinuxのINT5 )、
     英語INT5 )、
     数学INT5 )、
      CONSTRAINTは id_course FOREIGN  KEY(ID)の参照を学生(ID) 
)。

ケース:Javaの最高達成学生の情報を照会します

SELECT  *  FROM 生徒 
 WHERE ID = SELECT ID FROM もちろん 
     WHEREジャワ= SELECT  MAX(Java)のFROM コース
    );

 

サブクエリの結果は、複数行の単一列であります

サブクエリの結果は、単一のマルチラインの実施形態では、結果セット、IN演算子を使用して、親クエリ、またはBETWEEN ... ANDと同様のアレイであります...

SELECTクエリフィールドFROMテーブルWHEREフィールド、IN(副問合せ)。

ケース:学生のジャワ情報の平均値よりも低く問い合わせます

SELECT  *  FROM 生徒
 WHERE ID BETWEEN SELECT  MIN(ID)FROMもちろんWHEREのJava <SELECT  AVG(Java)のFROM コース))
     AND SELECT  MAX(ID)FROMもちろんWHEREのJava <SELECT  AVG(Java)のFROMコース)) ;

 

サブクエリの結果は、複数の列と行であります

確かに、長い複数の列のようにサブクエリ結果、FROMテーブルとしてバック

SELECTクエリフィールドFROM(サブクエリ)エイリアステーブルWHERE条件。

必要なエイリアスとしてサブクエリテーブル、そうでない場合は、このテーブルには、テーブル内のフィールドにアクセスすることはできません名前がありません

以下のような:学生情報照会やJava、Pythonの、英語、数学の成績、及び平均数学のスコアよりも大きい必要

最初のステップ:クエリのJava、Pythonの、英語、数学、すべての学年で

SELECTのJava、Pythonの、英語、数学、ID FROMもちろんAS course1

ステップ2:クエリ数学のスコアの平均

SELECT  AVG(数学)FROMコース

第3のステップは:テーブルの使用は、学生情報照会、および学生の科目へのアクセス要求、およびスコアの要件に参加します

SELECT  *  FROM 学生
 INNERは 、JOINSELECTのJava、Pythonの、英語、数学、ID FROMコース)AS course1 ON students.Id = course1.Id
 WHERE数学>SELECT  AVG(数学)FROMコース)。

 

クエリの概要導入されたバージョン:

  • 長い別々のサブクエリの結果と同様に、次に後WHERE条件として

  • 長い複数の列と同じサブクエリの結果は、  FROM後ろのテーブルのような二次のクエリ 

     

おすすめ

転載: www.cnblogs.com/liyihua/p/12315552.html