外部結合 (SQL:12130)

Questions
外部結合です。
よくテーブルを結合するようなイメージで表現されますね。
 外部結合というより、むしろテーブル結合ですが、2種類のデータを結合して一つのテーブルにして表現する場合に用います。

 例えばですが、住所データで考えてみると、都道府県は47個あります。従業員の出身地を[岩手]と文字で記録しても良いですが、岩手県のコードは[3]ですので、この3だけ記録しておけば、保存されるデータ量は少なくて済みます。

しかし、データベースが優れているのはこのような観点ではなく、例えば後から岩手ではなく岩手「県」に変更したくなった場合などです。
 1万人の従業員がいたら1万件を探す必要があります。しかし、データベースで別々に保管していたら、マスタ側になる岩手に県を一か所付け足すだけで作業は終了です
 データベースはこのように活用して実務に活かしていきます。それでは以下二つのテーブルを外部結合でくっつけてみてみましょう。
Select * From M_tag
Select * From T_alocate
 まず、テーブルをふっつけるときの一般的な方法として以下のように説明されることが多いと思います。
Select * From T_alocate left Outer join M_tag on T_alocate.tagid=M_tag.tagid
※続きを開いてください。
Up:2021/08/29
Re:2021/09/09

Appendix
Click!
Questionsに書いた方法も決して間違いでもないし、私も普段このような結合方法です。
 ただ、覚えたての頃はこのように書いたほうが、頭には入りやすいのではないでしょうか
Select * From 
  (Select * From M_tag ) X
    left Outer join
  (Select * From T_alocate) Y
    on
  X.tagid=Y.Y.tagid
並びは多少変わりますが結果は同じです。
 Questionsに書いた方法は右側と左側及び、right Outer と left Outer が頭にすっと入ってくる人は大丈夫だと思います。
 しかし、すっと入ってこない人はAppendixに書いた表記のほうが、左右が平等な感じで頭に入ってきませんか?

 また、以前に演習で説明した別名を今回使っています。短い表記ですっきりさせています。元のSQL文もこのように書くとさらにみやすくなりませんか?
Select * From
 
 T_alocate X
left Outer join
 M_tag Y

on 
X.tagid=Y.tagid
 わざとスペース開けていますがSQL文としては、通りますので試してみてください。
超初級
初級
中級
上級
特殊
演習
超初級
初級
中級
上級
特殊
演習
aaaa