見出し画像

SQLのJOIN入門:初心者のためのやさしい解説


JOINとは何か?

JOINは、SQLで複数のテーブルを結びつけて情報を取り出すための機能です。例えば、「顧客(customers)」テーブルと「注文(orders)」テーブルがあるとき、JOINを使うと「どの顧客がどんな注文をしたか」という情報を一度に取り出せます。
JOINは、テーブル同士を「結合」するイメージで理解するとよいでしょう。

主なJOINの種類

INNER JOIN

INNER JOINは、両方のテーブルで一致する情報だけを取り出します。
図で表すと:

テーブルA  テーブルB
   ○         ○
  ○●○ ← → ○●○
   ○         ○

中央の●が、INNER JOINで取り出される部分です。

LEFT JOIN

LEFT JOINは、左側のテーブルの情報をすべて取り出し、右側のテーブルの情報は一致するものだけを取り出します。
図で表すと:

テーブルA  テーブルB
  ●●●   ←   ○
  ●●● ← → ○●○
  ●●●   ←   ○

左側(テーブルA)の情報がすべて、右側(テーブルB)の情報は一致するものだけ取り出されます。

RIGHT JOIN

RIGHT JOINは、LEFT JOINの逆で、右側のテーブルの情報をすべて取り出します。

FULL JOIN

FULL JOINは、両方のテーブルの情報をすべて取り出します。
図で表すと:

テーブルA  テーブルB
  ●●● ← → ●●●
  ●●● ← → ●●●
  ●●● ← → ●●●

両方のテーブルの情報がすべて取り出されます。

JOINの基本的な使い方

JOINの基本的な構文は以下のようになります:

SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name = table2.column_name;

例えば、顧客テーブル(customers)と注文テーブル(orders)を結合する場合:

SELECT customers.name, orders.product_name
FROM customers
INNER JOIN orders
ON customers.id = orders.customer_id;

この例では、customersテーブルとordersテーブルを顧客ID(customer_id)で結合し、顧客の名前(name)と注文した商品名(product_name)を取得しています。
より具体的な例を見てみましょう:

-- customersテーブル
CREATE TABLE customers (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100)
);

-- ordersテーブル
CREATE TABLE orders (
    id INT PRIMARY KEY,
    customer_id INT,
    product_name VARCHAR(100),
    order_date DATE
);

-- データの挿入
INSERT INTO customers VALUES (1, 'John Doe', 'john@example.com');
INSERT INTO customers VALUES (2, 'Jane Smith', 'jane@example.com');

INSERT INTO orders VALUES (1, 1, 'Laptop', '2023-01-15');
INSERT INTO orders VALUES (2, 1, 'Mouse', '2023-02-20');
INSERT INTO orders VALUES (3, 2, 'Keyboard', '2023-03-10');

-- INNER JOINの例
SELECT customers.name, orders.product_name, orders.order_date
FROM customers
INNER JOIN orders
ON customers.id = orders.customer_id;

この例では、顧客の名前、注文した商品名、注文日を取得しています。

JOINを使う時の注意点

  1. 結合するカラムを正しく選ぶ: テーブル同士を結びつけるカラムは、通常、主キーや外部キーを使います。

  2. JOINの種類を適切に選ぶ: 欲しい情報に応じて、INNER JOIN、LEFT JOINなどを使い分けます。

  3. パフォーマンスに注意: 大きなテーブル同士をJOINすると、処理に時間がかかることがあります。

  4. 結果を確認する: JOINした結果、予想外のデータが出てくることがあります。必ず結果を確認しましょう。

まとめ

  • JOINは複数のテーブルを結びつける機能

  • 主なJOINの種類は、INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN

  • JOINを使うときは、結合するカラムと、JOINの種類を適切に選ぶことが大切

  • 大きなテーブルをJOINするときは、パフォーマンスに注意が必要

JOINは、データベースから必要な情報を取り出すための強力なツールです。基本を理解し、少しずつ練習していくことで、複雑なデータ操作もできるようになります。

いいなと思ったら応援しよう!