リレーション
リレーション
- 複数のテーブルに情報をわけて管理し、必要に応じて組み合わせて使う
生産者用のテーブルを使う
- 「mydb」に新規テーブル「makers」をフィールド数「4」で作成する
- 「id」は「プライマリーキー」「オートインクリメント」
- SQLを実行しデータを挿入する
INSERT INTO makers SET name='山田さん', address='東京都港区', tel='000-111-2222'; INSERT INTO makers SET name='斉藤さん', address='北海道小樽市', tel='111-222-3333'; INSERT INTO makers SET name='川上さん', address='神奈川県横浜市', tel='222-333-4444';
複数のテーブルを横断して検索する
(1)商品1の情報を取り出す。
SELECT maker_id FROM my_items WHERE id=1;
(2)そのデータの「maker_id」で、生産者IDが「1」であることを知ります。
(3)生産者ID「1」の情報を検索します。
SELECT * FROM makers WHERE id=1;
リレーションを使う
- Relation(関係性)
- 複数のテーブルをその関連性からつないで1つのテーブルのようにして扱うことができます
SELECT * FROM makers, my_items WHERE my_items.id=1 AND makers.id=my_items.maker_id;
SELECT * FROM makers, my_items WHERE makers.id=my_items.maker_id;
WHERE でリレーションを貼る
- 「makerテーブルのid」と「my_itemsテーブルのmaker_id」が一致したデータを検索する
... AND makers.id=my_items.maker_id;
ここでは、my_itemsテーブルに記録されている「maker_id」というフィールド(my_items.maker_id)を元に、makersテーブルの「id」フィールドと情報(makers.id)を照合して引き出したいので、
makers.id=my_items.maker_id