MySQL(phpMyAdmin)でテーブルのリレーションを設定する方法っす。
テーブルと別のテーブルを外部キーで紐付けて、SQL文を使ってより詳細な情報を抽出することができます。
MySQLにリレーションを設定する鍵は外部キーの設定
買い出しリストに担当者を入れたテーブルを作成し、後で連絡ができるように名簿テーブルと関連させることを想定しました。
例として、以下2つのテーブルを準備。
名簿テーブル
買い出し担当テーブル
以上2つのテーブルを、外部キーを使って関連付けしてみます。
STEP1. 各テーブルを紐付けするための外部キーを挿入
まず最初に、2つのテーブルを紐付けするための外部キーを作成します。
1. 外部キーを挿入するテーブルを選択
外部キーを設定するために、買い出し担当のテーブルを選択。
※ カラムを追加する手順は以下記事も詳しいです↓
MySQLでカラム追加・削除をする方法(phpMyAdmin)
2. 構造タブから1列を挿入し実行
構造タブをクリックして
1列をpersonの後に追加します。
3. カラムの名前とデータ型を定義して保存
名前をcharge_id・データ型はINTにて保存します。
買い出し担当のテーブルに、担当者のid(charge_id)が挿入されました↓
ALTER TABLE `買い出し担当` ADD `charge_id` INT NOT NULL AFTER `Person`;
STEP2. 紐付けたいキーを一致させる
次に名簿テーブルのidと買い出し担当のcharge_idを一致させます。
名簿テーブルだと佐藤くんのidは1なので、
買い出し担当の佐藤くんの「charge_id」も1へ変更します。
これを4人分繰り返して、4人とも完了すると以下のとおりっす↓
ここで外部キーが一致できてないと、テーブル間での整合性がなくなり狙ったデータの抽出ができなくなります!
STEP3. SQL文書いてテーブルを関連付け
SQL文を使って、テーブル同士がリレーションできたか確認してみます。
例として
- 名簿テーブルは、テーブル①
- 買い出し担当テーブルは、テーブル②
と仮定すると、以下のような構文でリレーションを確認できます↓
SELECT * FROM テーブル①.テーブル② WHERE テーブル①.id=テーブル②.charge_id;
1. 買い出し担当のテーブルを選択
SQL文を記入する対象のテーブルを選択します。
charge_idを挿入した買い出し担当のテーブルを選択。
2. SQLタブをクリックして以下SQL文を入力。
SQL文を記入するためにSQLタブを選択。
以下SQLを記入して実行↓
SELECT * FROM 名簿,買い出し担当 WHERE 名簿.id=買い出し担当.charge_id
名簿のidに紐付けた、charge_id(レコード)を表示する指示です。
成功すれば、以下のように2つのテーブルがリレーション設定され、1つのテーブルとして表示されます↓
以上、2つのテーブルのリレーションの設定方法でした!
まとめ
MySQLでテーブルを使ってリレーションを設定する方法、なかなか理解してないと説明が難しいっすね。
自分で書いてて訳わかんなくて気持ち悪くなってきました。(ゲロゲロ)

関連:WordPressでアイキャッチが設定できない原因は表示オプションの漏れ