MiracleJobLogo
エンジニアのエンジニアによるエンジニアのためのサイト
News 07/25 おすすめ情報に 『 【案件】Azure AD関連の認証設計/azureの基本設計 』 を追加しました。
会員登録するとキャリア診断やサイトに参加することができます。
あなたにおすすめな技術情報、資格、仕事などをお知らせします。

無料会員登録


パスワードを忘れた場合
LINEで送る
MiracleJobBanaLeft1
MiracleJobBanaLeft2


データベース(DB)の結合 内部結合編
profile-img
投稿者: ぴろしきさん
投稿日:2022/10/14 17:29
更新日:
like-img
分類
技術
テクノロジー
全般
キャリア
運用・保守 / テクニカルサポート / 構築 / 設計
投稿内容

こんにちは!


今回はデータベースの結合についてお話していこうと思います!

そもそも結合とは複数のデータベースのデータを一つのデータベースに格納する方法として使われます。

例えばフォーム入力したデータを格納先データベースに挿入する際に使われます。


データベースの結合には5種類あります。

①INNER JOIN(内部結合)

②LEFTOUTER JOIN(左外部結合)

③RIGHTOUTER JOIN(右外部結合)

④FULL OUTER JOIN(外部結合)

⑤CROSS JOIN(交差結合)


今回は内部結合についてお話していこうと思います。


①のINNER JOINは結合するテーブルのうち、条件に一致するデータのみ結合する方法です。

一致しないデータについては除外されてしまいますので注意しましょう。

SQL文例:SELECT*FROM tableA INNER JOIN tableB ON tableA.id = tableB=id;


上記のSQL文ですとtableAのNameとtableBのNameを紐づけ条件として結合を実行されます。

この場合tableAのNameとtableBに一致するデータのみ結合されるので、tableBにしかないデータだけど、NameカラムにtableAと一致するものがないものは結合されず除外されます。

文章だけだとわかりにくいので下に図解してみます。

使用するSQL文は下記です

SELECT*FROM tableA INNER JOIN tableB ON tableA.id = tableB=id;

テーブル

tableA    tableB

id   Name  id Class

1 鈴木   1 B

2 佐藤   2 A

3 田中   3 A

4 三ヶ月  5 D


上記のような2つのテーブルがあるとして、このテーブルを1つにまとめたいケースが発生しました。

INNER JOINを使用して結合を実施すると


Table

id Name id Class

1 鈴木  1 B

2 佐藤  2 A

3 田中  3 A


という結果になります。

あれ、すべてのデータが結合されていない・・・ということにお気づきでしょうか。

こちらの内部結合は前述したとおり、テーブル間の指定したキーで照合するため一致しないid4とid5は結合の対象から外れてしまいます。

内部結合にはこのような落とし穴もあるので注意しましょう。


本日は内部結合編ということでまたほかの結合についてもお話しできればと思います!

ではまた!

コメント


MiracleJobBanaRight1
MiracleJobBanaRight2
MiracleJobBanaRight3