2020/01/26SQLの相関副問合せのサンプルです。テーブルB.項目)1行目の主問い合わせにあるテーブルは「テーブルA」です。2行目の副問合せにあるテーブルは「テーブルB」です。→2行目の副問合せのwhereの条件に1行目の主問い合わせの「テーブルAの項目」があります。→副問合せの中に主問い合わせの項目があります。→SQLは相関副問合せです。相関副問合せは、主問い合わせのSQLを実行し、そこで取得した行を1行ずつ副問合せの条件にセットしてSQLを実行します。副問合せのみの場合は、副問合せのSQLを実行してから主問い合わせのSQLを実行します。相関サブクエリとも呼ばれます。副問合せのサンプル(サブクエリ)自己結合での相関副問合せのサンプル自己結合での相関副問合せのサンプルです。以下のテーブルがあるとします。40以下のSQLを実行します。各カテゴリごとで最も個数の多い商品の名前を表示します。b.category);3行目のwhereの条件で、主問い合わせのa.categoryを条件にしているので相関副問合せになります。1.1行目を実行し、その結果として4行取得します。2.その取得した行の1行目のcategoryの値「フルーツ」を3行目の条件とします。a.categoryのaは、副問合せの中にありませんが可能です。以下は、SQLの実行イメージです。b.category);条件はカテゴリがフルーツで、個数が最大値のものが条件です。次もカテゴリがフルーツで、個数が最大値のものが条件です。次はカテゴリが野菜で、個数が最大値のものが条件です。次もカテゴリが野菜で、個数が最大値のものが条件です。結果は、以下のとおりです。大根フルーツで個数が最大のものと野菜で個数が最大のものを取得しました。EXISTS句で相関副問合せのサンプルEXISTS句で相関副問合せのサンプルです。以下のテーブルがあるとします。1つめはsalesテーブルです。大根2つめはsyouhinテーブルです。40salesテーブルに存在し、syouhinテーブルでの個数が30以上の商品の名前を表示します。b.id);3行目のwhereの条件で、主問い合わせのa.idを条件にしているので相関副問合せになります。1行目を実行し、その結果として複数行取得します。2行目は、EXISTS句があります。条件に一致した場合に結果が表示されます。以下は、SQLの実行イメージです。b.id);条件はidが2で、個数が30以上のものが条件です。次はidが4で、個数が30以上のものが条件です。結果は、以下のとおりです。