一般社団法人 全国個人事業主支援協会

COLUMN コラム

  • 【SQL】テーブル結合(内部結合-INNER JOIN編)

テーブルの結合について、自分なりにまとめてみた。

まずは、内部結合編からお送りいたします。

概要

JOINで結合先のテーブルを指定し、ONより後ろに、どの条件で結合するのかを記述する。

結合した両テーブルの中から、結合条件(ON)に一致するデータのみを抽出する(どちらか片方のテーブル、または両方のテーブルとも条件に一致しない場合は抽出しない)

SELECT *
    FROM 結合元のテーブル名(左)
    INNER JOIN 結合先のテーブル名(右)
        ON 両テーブルの結合条件

例示

◆結合元テーブル:子供テーブル(Kodomo)

◆結合先テーブル:親テーブル(Oya)

◆結合条件:子供テーブルの「oya_id」 と 親テーブルの「id」 が一致するデータ

子供テーブル(結合元):Kodomo

id name oya_id
1 ichiro 1
2 jiro 2
3 saburo 1
4 shiro 4

親テーブル(結合先):Oya

id name
1 taro
2 hanako
3 gonzou

(SQL)

SELECT * FROM Kodomo –結合元テーブル
INNER JOIN Oya –結合先テーブル
ON Kodomo.oya_id = Oya.id; –結合条件1(※この後にANDで複数条件も可能)

 

(結果)子供テーブルのoya_id=4 と 親テーブルのid=3 は

結合条件に一致しない(子供テーブル.oya_idと親テーブル.idが一致するものが無い)ためSELECTされない。

id name oya_id id name
1 ichiro 1 1 taro
3 saburo 1 1 taro
2 jiro 2 2 hanako

まとめ・・・

1.左(結合元_子供)Kodomoテーブルの一覧を取得する
2.右(結合先_親)Oyaテーブルから、ONで指定した条件にマッチするレコードを探してマージする。
3.マッチするレコードが複数あった場合、1,2レコード目のように、マージしたものをそれぞれ別のレコードにする。
4.条件にマッチするレコードがないものは削除される。

The following two tabs change content below.

檜山

よろしくお願いいたします。

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア