0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】LEFT OUTER JOINってどのテーブルが偉いの?

Last updated at Posted at 2024-02-21

LEFT OUTER JOINとは

左外部結合は、指定したテーブル(左側のテーブル)の全ての行を含み、共通のキーに基づいて結合条件を満たす行がある場合にはそれを結合します。 一致しない場合は右側のテーブルの該当箇所にはNULLが入ります。

理解した!🤓

「A left outer join B」という結合を行う際に、
Aテーブルに対してBテーブルの情報を付けたすだけなので、
Aテーブルが偉い = Aテーブルのレコード数と同じ結果セットが作られる!

本当に?

こちらの2つのテストテーブルを用意し、検証してみたいと思います。
Aテーブル:TEST_NAME
Bテーブル:TEST_ADDRESS

①AテーブルとBテーブルのレコード数が同じ

👇Aテーブル「TEST_NAME」の状態
Untitled.png

👇Bテーブル「TEST_ADDRESS」の状態
Untitled (1).png

👇結果セット
結合によって、各人物の住所情報が付け足された
キャプチャ.PNG

②Bテーブルのレコード数が多い

👇Aテーブル「TEST_NAME」の状態
Untitled.png

👇Bテーブル「TEST_ADDRESS」の状態
キャプチャ.PNG

👇結果セット
Bテーブルに「ID=4」のレコードがあったとしてはも、結果セットにないので、やはりAテーブルが偉い!
キャプチャ.PNG

➂Bテーブルのレコード数が多いが、②と違う増え方

👇Aテーブル「TEST_NAME」の状態
Untitled.png

👇Bテーブル「TEST_ADDRESS」の状態
Bテーブルに「ID=1」のレコートが2行存在する
image.png

👇結果セット
東京の花子さんと新潟の花子さんがそれぞれ作られてしまった。。
image.png

結論

「Aテーブルが偉い = Aテーブルのレコード数と同じ結果セットが作られる!」という理解が間違いでしたね。

実現場のデータ処理には、➂みたいパターンはあんまりあり得ないと思います。
ただ、結合キーをしっかり定めいないと、データが変な増え方をしてわけわからない結果セットになり得ると思います。

ご案内

株式会社ジールでは、「ITリテラシーがない」「初期費用がかけられない」「親切・丁寧な支援がほしい」「ノーコード・ローコードがよい」「運用・保守の手間をかけられない」などのお客様の声を受けて、オールインワン型データ活用プラットフォーム「ZEUSCloud」を月額利用料にてご提供しております。
ご興味がある方は是非下記のリンクをご覧ください:
https://www.zdh.co.jp/products-services/cloud-data/zeuscloud/?utm_source=qiita&utm_medium=referral&utm_campaign=qiita_zeuscloud_content-area

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?