Traffine I/O

日本語

2023-03-02

SQLにおけるサブクエリ

サブクエリとは

サブクエリは、他のSQLクエリ内で使用されるクエリです。メインのクエリで使用するためにデータベースからデータを取得するために使用されます。サブクエリを使用することで、1つのステージの結果を次のステージの入力として使用して、複数の段階で操作を実行することができます。

サブクエリは、SELECTFROMWHEREHAVING句など、SQL文のさまざまな部分で使用することができます。サブクエリによって返されたデータは、外部クエリによってさらなる操作に使用されます。サブクエリは、使用方法に応じて、単一の値(スカラー)、単一の行、複数の行、またはテーブルを返すことができます。

サブクエリの構文と使用方法

SQLにおけるサブクエリの構文とさまざまな使用方法について説明します。以下の2つのテーブル、「Employees(従業員)」と「Departments(部門)」を含むシンプルなデータベースを使用します。テーブルの定義は以下のとおりです。

Employees:

EmployeeID FirstName LastName DepartmentID Salary
1 John Doe 1 50000
2 Jane Smith 2 60000
3 Mary Johnson 1 70000
4 James Brown 3 80000

Departments:

DepartmentID DepartmentName
1 HR
2 Finance
3 IT

サブクエリの基本的な構文

サブクエリは括弧内に記述され、メインのSQLクエリのさまざまな部分に配置することができます。以下は、WHERE句におけるサブクエリの基本的な構文です。

sql
SELECT column_name(s)
FROM table_name
WHERE column_name operator (SELECT column_name FROM table_name WHERE condition);

例えば、平均給与を超える全ての従業員を見つける場合、次のようになります。

sql
SELECT FirstName, LastName, Salary
FROM Employees
WHERE Salary > (SELECT AVG(Salary) FROM Employees);

このクエリの結果は以下のとおりです。

FirstName LastName Salary
Mary Johnson 70000
James Brown 80000

インラインビュー

インラインビューは、FROM句内のサブクエリです。複雑なクエリを簡略化するために使用できます。以下は例です。

sql
SELECT e.FirstName, e.LastName, e.Salary
FROM (SELECT * FROM Employees WHERE Salary > 60000) as e;

このクエリの結果は以下のとおりです。

FirstName LastName Salary
Mary Johnson 70000
James Brown 80000

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!