Study Log

日々の学習のまとめ・備忘録

View on GitHub
16 March 2026

INNER JOIN と LEFT JOIN の比較

by Natsumi Chiba

INNER JOIN と LEFT JOIN の違い

SQLでは、複数のテーブルを組み合わせてデータを取得するために JOIN を使用します。
その中でもよく使われるのが INNER JOINLEFT JOIN です。


1. INNER JOIN

概要

両方のテーブルに存在するデータだけ取得する

一致する行がある場合のみ結果に含まれます。


構文

SELECT カラム
FROM テーブルA
INNER JOIN テーブルB
ON 結合条件;

users テーブル

id name
1 佐藤
2 鈴木
3 田中

orders テーブル

id user_id product
1 1 PC
2 2 Mouse

クエリ

SELECT users.name, orders.product
FROM users
INNER JOIN orders
ON users.id = orders.user_id;

結果

name product
佐藤 PC
鈴木 Mouse

※ ordersが存在しない「田中」は取得されない


2. LEFT JOIN

概要

左側のテーブルをすべて取得する

右側のテーブルに一致するデータが無い場合は NULL が入る。


構文

SELECT カラム
FROM テーブルA
LEFT JOIN テーブルB
ON 結合条件;

SELECT users.name, orders.product
FROM users
LEFT JOIN orders
ON users.id = orders.user_id;

結果

name product
佐藤 PC
鈴木 Mouse
田中 NULL

※ ordersが無いユーザーも表示される


3. INNER JOIN と LEFT JOIN の比較

JOIN 取得されるデータ
INNER JOIN 両方のテーブルに存在するデータのみ
LEFT JOIN 左テーブルはすべて取得

4. イメージ図

users        orders
------       -------
1 佐藤   ←→  user_id = 1
2 鈴木   ←→  user_id = 2
3 田中

INNER JOIN

佐藤
鈴木

LEFT JOIN

佐藤
鈴木
田中

5. 実務での使い分け

INNER JOIN

「関連データが必ずある」場合


LEFT JOIN

「関連データが無い可能性がある」場合


まとめ

JOIN 特徴
INNER JOIN 共通データのみ取得
LEFT JOIN 左テーブルをすべて取得

覚え方

tags: