0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

INNER JOIN と LEFT JOIN の使い分け

Posted at

知識がうやむやになってたのでまとめます。

INNER JOIN(内部結合)

2つのテーブルで両方に一致するデータのみを結合します。どちらかのテーブルに該当データがない場合、その行は結果に含まれません。

LEFT JOIN(左外部結合)

左側のテーブルのすべてのデータを保持し、右側のテーブルから一致するデータを結合します。右側に一致するデータがない場合は、NULLが入ります。

具体例

例えば、「顧客」テーブルと「注文」テーブルがあるとします。

INNER JOINの場合:

SELECT 顧客.名前, 注文.商品
FROM 顧客
INNER JOIN 注文 ON 顧客.ID = 注文.顧客ID;

注文したことがある顧客のみが結果に表示されます

LEFT JOINの場合:

SELECT 顧客.名前, 注文.商品
FROM 顧客
LEFT JOIN 注文 ON 顧客.ID = 注文.顧客ID;

すべての顧客が表示され、注文していない顧客の「商品」列にはNULLが入ります

使い分け

  • INNER JOIN: 両方のテーブルに関連データが必ず存在する場合
  • LEFT JOIN: 左側のテーブルのデータを全て残したい場合(例:全顧客リストを出して、注文の有無を確認したい時)

どちらを使うかは、「マッチしないデータをどう扱いたいか」によって決まります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?