こんにちは!
今回はデータベースの結合についてお話していこうと思います!
そもそも結合とは複数のデータベースのデータを一つのデータベースに格納する方法として使われます。
例えばフォーム入力したデータを格納先データベースに挿入する際に使われます。
データベースの結合には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は結合の対象から外れてしまいます。
内部結合にはこのような落とし穴もあるので注意しましょう。
本日は内部結合編ということでまたほかの結合についてもお話しできればと思います!
ではまた!