内部結合と外部結合の違いとは?

2つのテーブルを結合をしたい時には、内部結合と外部結合の2つの方法があります。

名前が似ているけど、内部と外部で何が違うんだろう?




本記事を読むことで、次のことがわかります。

・内部結合と外部結合の違い
・左外部結合と右外部結合の違い
・結合するときのSQL

 

内部結合(INNER JOIN)


内部結合とは、2つの表を直積したあとに、選択(条件に合う行だけ抽出)する結合です。

直積というのは、2つの表を結合する方法の一つです。
例えば、A表とB表がある場合、A表の1レコードにつき、B表の全レコードを突き合わせるイメージです。

 

内部結合では、2つの表に結合キーの同じ値がある場合の、導出されます。

両方の表に値がないと、導出されないんだね

 

SELECT *
FROM 商品表, 購買管理表
商品表.商品ID INNER JOIN 購買管理表.商品ID

 

 

外部結合(OUTER JOIN)


外部結合では、結合相手の表に結合キーの同じ値が無くても、結合元の表に存在すれば導出されます。

内部結合とは違って、片方の表のレコードは、全て導出する方法だね。



どちらの表を全て導出するかを指定するには、次の方法が使えます。



左外部結合(LEFT OUTER JOIN)


左外部結合では、「LEFT OUTER JOIN」の左に記載した表を全て導出する結合方法です。

SELECT * 
FROM 商品表 LEFT OUTER JOIN 購買管理表
ON 商品表.商品ID = 購買管理表.商品ID

 

右外部結合(RIGHT OUTER JOIN)

右外部結合では、「RIGHT OUTER JOIN」の右に記載した表を全て導出する結合方法です。

SELECT * 
FROM 商品表 RIGHT OUTER JOIN 購買管理表
ON 商品表.商品ID = 購買管理表.商品ID

 

 

まとめ

間違えやすい「テーブル結合」について、理解が深まりましたか?

「結合」は関係演算と呼ばれる演算の一種です。


他の関係演算についても知りたい方は、こちらを御覧ください。

内部結合と外部結合の違いとは?

2022年7月26日