MYSQL のメモ (リレーション)

リレーションを使用してみました
リレーションは Relation つまり、関連性で
複数のテーブルをその関連性からつないで1つのテーブルのように扱う機能のこと
まずは、実践
SELECT * FROM `makers` ,my_items where my_items.id=1 AND makers.id=my_items.maker_id;
これで
一発で生産者情報と、商品情報が得られる
うーん、便利
続いて実験その2
SELECT * FROM `makers` ,my_items where makers.id=my_items.maker_id;
ちなみに、phpMyAdmin の場合、該当する部分が黄色い枠で囲われるので
わかりやすい
このリレーションのポイントとなるのが、FROM のところ
検索したいDBテーブルを , で区切って指定することで複数のテーブルから
条件検索が可能になります
複数テーブルを指定した場合、必ずキーとなるフィールドを使わないとダメ
例えば、今回のように WHERE の後にある
AND makers.id=my_items.maker_id
これは
maker テーブル の id と
my_items テーブルの maker_id が
一致したデータを検索という意味になります
これ、 java とかでプログラミング経験あるとわかりやすいかも
javascript とかでもよくある書き方です
書き方は、
テーブル名と カラム名を .でつないで記述します
つまり、今回なら
makers テーブル と id カラムなので
makers.id となります
なぜ、こんな面倒なことを指定するかというと
id が
makers テーブルなのか
my_items テーブルなのかがわからないからです
仕事で、部品を持ってきてと言われても、同じ名前の部品でしたら
どのテーブルかわからないと持ってこれません
つまり、わかりやすい細かい指示をしましょうということです
~のテーブルにある~という部品をもってきて
というように指示するようなものです
アレもってきて
では意味がわかりませんので
それはさておき、
複数のテーブルをつないでデータ検索することが
リレーションをはるということになります

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です