初心者向けMySQL⑩ 3つのテーブルを関連づける

SQL

こんにちは。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を学ぼう!!

この投稿は役に立ちましたか? 役に立った 役に立たなかった 6 人中 6 人がこの 投稿 は役に立ったと言っています。

コメント

海外ブログバナー

にほんブログ村 海外生活ブログへ

海外ブログバナー

にほんブログ村 海外生活ブログへ

シンガポールの古本屋さん

タイトルとURLをコピーしました