こんにちは。fsです。
前回の記事ではMySQLを使って2つのテーブルを関連づける作業をしていきました。
※参考記事はこちら
↓↓↓↓↓↓↓↓
データベースを管理していると、3つ以上のテーブルを関連づけることもよくあります。
例えば、
「顧客情報と商品情報に加えて、購入履歴も見たい!」
こんなケースです。
というわけで今回は、MySQLで3つのテーブルの関連付けをやっていきたいと思います。
作業としてはとても簡単なので、安心してお読みください。
3つのテーブルを関連づける
それでは早速やっていきましょう!
顧客、商品のテーブル以外に、購入履歴という新たなテーブルを作成します。
顧客、商品はidと紐づけられるように整数(int)、個数も整数、購入日時はdatetimeとします。
create table 購入履歴 (
id int primary key auto_increment,
顧客 int,
商品 int,
個数 int,
購入日時 datetime
);
実行すると、購入履歴というテーブルができました。
次に購入履歴にデータを入れていきます。
insert into 購入履歴(顧客, 商品, 個数, 購入日時) values(
1,
2,
2,
'2022-01-01 01:11:01'
);
実行してselect * from購入履歴で見てみると、ちゃんとデータが入っています。
ですが、これだけだと顧客や商品がidとして入っているので、どの顧客が何を買ったかよくわかりません。
そこで3つのテーブルを接続し、わかりやすくしていきます。
今回は3つなので、inner joinではなくカンマ区切りでテーブルをつなげます。
selectで各テーブルを指定し、whereの後に
- 購入履歴の顧客カラムを顧客テーブルのidにつなげる
- 購入履歴の商品カラムを商品テーブルのidにつなげる
という記述をします。
※andの記載をお忘れなく!
select * from 購入履歴, 顧客, 商品 where
顧客 = 顧客.id and
商品 = 商品.id;
実行すると複数のテーブルが組み合わされ、一つのテーブルのようになりました。
このように複数のテーブルを関連づけると、データの一元管理が可能になります。
まとめ
いかがだったでしょうか。
今回は、MySQLを使い3つのテーブルを関連づける方法を紹介していきました。
情報をまとめて管理するのに、この手法はとても便利です。
もっと複雑なプログラムをつくる際に必須となる知識なので、ぜひ覚えていきましょう!
今回は以上です。
最後までお読みいただきありがとうございました。
fsも愛用中!UdemyでMySQLを学ぼう!!
コメント