LEFT OUTER JOINとは
左外部結合は、指定したテーブル(左側のテーブル)の全ての行を含み、共通のキーに基づいて結合条件を満たす行がある場合にはそれを結合します。 一致しない場合は右側のテーブルの該当箇所にはNULLが入ります。
理解した!🤓
「A left outer join B」という結合を行う際に、
Aテーブルに対してBテーブルの情報を付けたすだけなので、
Aテーブルが偉い = Aテーブルのレコード数と同じ結果セットが作られる!
本当に?
こちらの2つのテストテーブルを用意し、検証してみたいと思います。
Aテーブル:TEST_NAME
Bテーブル:TEST_ADDRESS
①AテーブルとBテーブルのレコード数が同じ
②Bテーブルのレコード数が多い
👇結果セット
Bテーブルに「ID=4」のレコードがあったとしてはも、結果セットにないので、やはりAテーブルが偉い!
➂Bテーブルのレコード数が多いが、②と違う増え方
👇Bテーブル「TEST_ADDRESS」の状態
Bテーブルに「ID=1」のレコートが2行存在する
👇結果セット
東京の花子さんと新潟の花子さんがそれぞれ作られてしまった。。
結論
「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