この記事では、SQLで異なるテーブル間でのデータの結合方法について解説します。INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN, CROSS JOINといった結合方法を具体的なデータテーブルと一緒に学びましょう。
目次
SQLにおけるデータ結合とは
データベースにおいて、1つのテーブルだけではなく、複数のテーブルを使って情報を得たい場合があります。このような場合に役立つのが「データの結合」です。
データ結合の種類
SQLにおいては、主に以下の5種類のデータ結合があります。
- INNER JOIN
- LEFT JOIN (または LEFT OUTER JOIN)
- RIGHT JOIN (または RIGHT OUTER JOIN)
- FULL OUTER JOIN
- CROSS JOIN
INNER JOINの基本
INNER JOINは、2つのテーブルに存在するマッチするデータだけを結合します。
基本構文
SELECT columns
FROM table1
INNER JOIN table2
ON table1.column = table2.column;
具体的な例
2つのテーブル「employees」と「departments」があるとします。
employees | ||
---|---|---|
ID | Name | Dept_ID |
1 | Alice | 101 |
2 | Bob | 102 |
3 | Charlie | 103 |
departments | |
---|---|
Dept_ID | Dept_Name |
101 | HR |
102 | Engineering |
103 | Sales |
以下のSQL文で、employeesの各行をdepartmentsと結合できます。
SELECT employees.Name, departments.Dept_Name
FROM employees
INNER JOIN departments ON employees.Dept_ID = departments.Dept_ID;
LEFT JOINとRIGHT JOIN
LEFT JOINは、左のテーブルのすべてのレコードと右のテーブルのマッチするレコードを結合します。RIGHT JOINはその逆です。
LEFT JOINの基本構文
SELECT columns
FROM table1
LEFT JOIN table2
ON table1.column = table2.column;
RIGHT JOINの基本構文
SELECT columns
FROM table1
RIGHT JOIN table2
ON table1.column = table2.column;
FULL OUTER JOINとCROSS JOIN
FULL OUTER JOINは、マッチしないレコードも含めて2つのテーブルを結合します。CROSS JOINはすべての可能な組み合わせで結合します。
FULL OUTER JOINの基本構文
SELECT columns
FROM table1
FULL OUTER JOIN table2
ON table1.column = table2.column;
CROSS JOINの基本構文
SELECT columns
FROM table1
CROSS JOIN table2;
まとめ
SQLでのデータ結合は非常に重要なスキルです。特に大規模なデータベースを操作する場合、異なるテーブル間での情報の結合が必要となることが多いです。この記事で紹介した結合方法をマスターすることで、より複雑なデータ操作が可能となります。
created by Rinker
¥4,554
(2024/09/08 04:25:02時点 Amazon調べ-詳細)
コメント