• ブログ
  • >
  • [SQLの基本]テーブル結合入門: INNER JOIN、LEFT JOIN、RIGHT JOIN

[SQLの基本]テーブル結合入門: INNER JOIN、LEFT JOIN、RIGHT JOIN

投稿日:

はじめに

データベースを操作する際、複数のテーブルからデータを結合して一つの結果セットを取得することがよくあります。SQLには、テーブルを結合するためのさまざまな方法が用意されています。今回は、最も基本的なテーブル結合の方法である「INNER JOIN」「LEFT JOIN」「RIGHT JOIN」について解説します。

INNER JOIN

INNER JOINは、結合条件に一致する行だけを結合します。結合する両方のテーブルに共通するデータだけが結果セットに含まれます。

例 employeesテーブルとテーブルdepartmentsをdepartment_idで結合し、従業員の名前と所属する部門名を取得するクエリは次の通りです。

SELECT 
  employees.first_name, 
  employees.last_name, 
  departments.name
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;

LEFT JOIN

LEFT JOINは、左側のテーブルの全ての行と、右側のテーブルの結合条件に一致する行を結合します。右側のテーブルに一致する行がない場合、NULLが返されます。

例 employeesテーブルとテーブルdepartmentsをdepartment_idで左外部結合し、全ての従業員とその所属する部門名を取得するクエリは次の通りです。

SELECT 
  employees.first_name, 
  employees.last_name, 
  departments.name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;

RIGHT JOIN

RIGHT JOINは、右側のテーブルの全ての行と、左側のテーブルの結合条件に一致する行を結合します。左側のテーブルに一致する行がない場合、NULLが返されます。

例 employeesテーブルとテーブルdepartmentsをdepartment_idで右外部結合し、全ての部門とその部門に所属する従業員を取得するクエリは次の通りです。

SELECT 
  employees.first_name, 
  employees.last_name, 
  departments.name
FROM employees
RIGHT JOIN departments ON employees.department_id = departments.id;

まとめ

今回は、SQLの基本的なテーブル結合方法である「INNER JOIN」「LEFT JOIN」「RIGHT JOIN」について学びました。これらの結合を使いこなすことで、複数のテーブルから効率的にデータを取得できるようになります。次回の記事では、さらに高度なテーブル結合やサブクエリの使用方法について詳しく解説していきます。ぜひご期待ください!