{category}

MySQL - 高度なクエリ技術

Correlated SubQuery

コリレーテッド サブクエリ(データ操作

意味 外部クエリと連動するサブクエリ


Correlated SubQueryとは?

Correlated SubQuery(相関サブクエリ)は、外部クエリの各行に対して実行されるサブクエリのことです。サブクエリが外部クエリの列を参照するため、両者が密接に関連しています。

Correlated SubQueryの具体的な使い方

相関サブクエリ例

SELECT e.name, e.salary
FROM employees e
WHERE salary > (
  SELECT AVG(salary)
  FROM employees
  WHERE department_id = e.department_id
);

-- 結果を表示
SELECT 'Employees with above average salary in their department:' AS result;
SELECT e.name, e.salary, (
  SELECT AVG(salary)
  FROM employees
  WHERE department_id = e.department_id
) AS dept_avg_salary
FROM employees e
WHERE salary > (
  SELECT AVG(salary)
  FROM employees
  WHERE department_id = e.department_id
);

👇出力結果

Employees with above average salary in their department:
[名前] [給与] [部署平均給与]

この例では、各従業員の給与が、その従業員が所属する部署の平均給与よりも高いかどうかを確認しています。サブクエリは外部クエリの各行(各従業員)に対して実行されます。

Correlated SubQueryに関するよくある質問

Q. 相関サブクエリの実行順序は?
A. 相関サブクエリは、外部クエリの各行に対して実行されます。つまり、外部クエリが1行取得するたびに、その行の値を使ってサブクエリが実行されます。これは、非相関サブクエリ(独立して1回だけ実行される)とは異なります。
Q. 相関サブクエリの代替手段は?
A. 相関サブクエリは便利ですが、大量のデータを扱う場合にパフォーマンスが低下する可能性があります。代替手段として、JOINやウィンドウ関数(OVER句)を使用することができます。例えば、AVG()関数をOVER句と組み合わせて使用すると、同様の結果をより効率的に得られる場合があります。

Correlated SubQueryが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、MySQLのCorrelated SubQueryやJOIN、WHERE、HAVING、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


MySQLを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!MySQLはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

JOIN

テーブルの結合

種類: 結合と集合演算

WHERE

条件指定

種類: 条件と並べ替え

HAVING

グループ化後の条件指定

種類: 条件と並べ替え

CREATE VIEW

仮想テーブルの作成

種類: ビュー管理

DROP VIEW

ビューの削除

種類: ビュー管理