SQLでテーブル結合を使って一致するデータを抽出する方法について、具体的なサンプルコードと共に解説します。初心者でも理解できる内部結合から応用的な外部結合まで、実践的な使い方を学んでみませんか?
SQL副問合せとJOINで実現するテーブル結合の基礎と応用
SQLのテーブル結合において、副問合せとJOINを使い分ける方法や、それぞれの特徴と使用場面について解説します。実務でよく使うパターンとは?
副問合せ(サブクエリ)は、SQL文の中に入れ子状に記述される別のSQL文です。主なポイントは以下の通りです:
SELECT カラム名
FROM テーブル名
WHERE 条件式 = (
SELECT カラム名
FROM テーブル名
WHERE 条件式
)
実行順序は以下のようになります:
JOINには複数の種類があり、データの結合方法によって使い分けます:
結合タイプ | 用途 | 特徴 |
---|---|---|
INNER JOIN | 共通データのみ取得 | 両方のテーブルに存在するデータのみ |
LEFT JOIN | 左テーブル優先 | 左テーブルの全データを保持 |
RIGHT JOIN | 右テーブル優先 | 右テーブルの全データを保持 |
FULL OUTER JOIN | 全データ取得 | 両方のテーブルの全データを保持 |
性能面での特徴を比較すると:
副問合せは様々な場所で使用可能です:
-- SELECT句での副問合せ
SELECT
商品名,
(SELECT AVG(価格) FROM 価格履歴 WHERE 商品ID = 商品.ID) as 平均価格
FROM 商品
-- FROM句での副問合せ
SELECT
部門名,
売上合計
FROM (
SELECT 部門ID, SUM(売上) as 売上合計
FROM 売上データ
GROUP BY 部門ID
) AS 集計
JOIN 部門マスタ ON 集計.部門ID = 部門マスタ.ID
効率的なクエリ実行のためのポイントです:
これらの最適化により、クエリのパフォーマンスを大幅に向上させることができます。