プロが教えるわが家の防犯対策術!

質問失礼します。

下記のような3つのデータベースがあるとします。

【main】
+---+--------------+------+------+
│id│title │artist│season│
+---+--------------+------+------+
│1│winter again │1   │4   │
+---+--------------+------+------+
│2│すみれ9月LOVE│2   │3   │
+---+--------------+------+------+
│3│HOWEVER │1   │4   │
+---+--------------+------+------+
│4│Boy Meets Girl │3   │1   │
+---+--------------+------+------+
│5│いつか │4   │2   │
+---+--------------+------+------+
│6│夏色 │4   │2   │
+---+--------------+------+------+

【artist】
+---+--------+
│id│artist │
+---+--------+
│1│GLAY │
+---+--------+
│2│SHAZNA│
+---+--------+
│3│TRF │
+---+--------+
│4│ゆず │
+---+--------+

【season】
+---+------+
│id│season│
+---+------+
│1│春 │
+---+------+
│2│夏 │
+---+------+
│3│秋 │
+---+------+
│4│冬 │
+---+------+


この3つのデータベースを最終的に1つにまとめて
PHP上で下記のように表示することは可能でしょうか?

【例.php】
+---+--------------+-----------+------+
│番号│曲名     │アーティスト│季節 │
+---+--------------+-----------+------+
│1│winter again │GLAY    │冬  │
+---+--------------+-----------+------+
│2│すみれ9月LOVE│SHAZNA  │秋  │
+---+--------------+-----------+------+
│3│HOWEVER │GLAY    │冬  │
+---+--------------+-----------+------+
│4│Boy Meets Girl │TRF     │春  │
+---+--------------+-----------+------+
│5│いつか │ゆず     │夏  │
+---+--------------+-----------+------+
│6│夏色 │ゆず     │夏  │
+---+--------------+-----------+------+


最初から【main】のデータベースにまとめておけばよいとは思うのですが、
データ数が数十万あり、【artist】や【season】を編集するだけでも大変になったため、
別でデータベースを作り、このような形にできないかと思っております。

また、もしできるとしたら、このような形は、
ページの表示速度が落ちたりするのでしょうか。

ご存じの方いらっしゃいましたら、ご教授お願い致します。

A 回答 (2件)

【main】tableを主にして、【artist】と【season】tableをLeft Outer Joinで結合します。


すると、お望みの仮想表ができあがります。

もしかすると、親切な方がSQL文を提示してくれるかもしれませんが、
あまりにも簡単な事と、結合について少し勉強された方が良いと思いますので、
Left Outer Joinで検索して調べて見られてはどうですか?
    • good
    • 0
この回答へのお礼

ありがとうございます!
Left Outer Join他のテーブルで使っているので、やってみます!!

ただ、基礎から勉強したわけでないので、
この形 = Left Outer Join
というのが結びつかず、ついつい質問に頼ってしまいます;

Thank you

お礼日時:2012/06/06 20:21

この手のDBは実は奥が深い



(1)楽曲名やアーティスト名がまったく同じ場合がある
(2)同じ楽曲であってもカバーなどアーティストが1人だけだとは限らない
(3)同じ人であってもアーティスト名が一つだけだとは限らない
(4)季節がない場合もあるし、四季をとおしたうたもある
    • good
    • 0
この回答へのお礼

あくまで、例のテーブルなので・・・
すいません、例が悪かったです(>_<)

お礼日時:2012/06/08 19:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!