2009年5月 6日

[mysql 14819] 【初歩的質問】 テーブルを結合するSQL文

こんにちは。nayaと申します(MySQL 5.0.24)。


以下のサンプルは、幼稚園児の、氏名と、所属する組みと、
好きな果物(3つまで)を表すものです。

(1)〜(3)のテーブル及びマスターから、(4)の照会結果が得られる
SQL文をご教示下さい。


(1) 園児テーブル
組み 氏名 果物1 果物2 果物3
1  太郎   1  2  4
1  二郎   2  3  4
2  三郎   4  NULL NULL
2  四郎   3  4  NULL
3  五郎   NULL NULL NULL

(2) 果物マスター
果物番号   果物名
1      イチゴ
2      ブドウ
3      リンゴ
4      ミカン

(3) 組みマスター
組み番号  組み名
1     はな組み
2     にじ組み
3     そら組み

(4) 期待する照会結果
はな組み 太郎 イチゴ ブドウ ミカン
はな組み 二郎 ブドウ リンゴ ミカン
にじ組み 三郎 ミカン NULL  NULL
にじ組み 四郎 リンゴ ミカン NULL
そら組み 五郎 NULL  NULL  NULL

なお、当方で考えた以下のSQLを実行すると、
指数乗に大量な照会結果が得られてしまいます。

select * from 園児テーブル, 果物マスター, 組マスター
where 園児テーブル.組み = 組みマスター.組み番号
and 園児テーブル.果物1 = 果物マスター.果物番号
and 園児テーブル.果物2 = 果物マスター.果物番号
and 園児テーブル.果物3 = 果物マスター.果物番号


当方、DBは、MS ACESSを使った経験もほとんどないですが、
MySQL5+PHP5でごく簡単なプログラムを作って勉強中の初心者レベルです。
よろしくお願い致します。

--
naya,
sna02388@xxxxx

投稿者 xml-rpc : 2009年5月 6日 13:16
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/84839
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。