FC2ブログ

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 テーブルなのかがわからないからです

仕事で、部品を持ってきてと言われても、同じ名前の部品でしたら
どのテーブルかわからないと持ってこれません
つまり、わかりやすい細かい指示をしましょうということです

~のテーブルにある~という部品をもってきて
というように指示するようなものです

アレもってきて
では意味がわかりませんので

それはさておき、
複数のテーブルをつないでデータ検索することが
リレーションをはるということになります
スポンサーサイト



テーマ : プログラミング
ジャンル : コンピュータ

コメント

非公開コメント

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック