PHPとMYSQLでサイトを制作しています。

MYSQLで、下記のテーブルを結合してデータを表示したいのですが、どのようにしたら良いでしょうか?

メインテーブル
フィールド1/フィールド2/フィールド3/フィールド4
テスト/1/2/3

サブテーブル
フィールド1/フィールド2
1/赤
2/青
3/紫

表示
テスト/赤(メインテーブルのフィールド2とサブテーブルのフィールド1のデータが一致してサブテーブルのフィールド2のデータを出力)/青(メインテーブルのフィールド3とサブテーブルのフィールド1のデータが一致してサブテーブルのフィールド2のデータを出力)/紫(メインテーブルのフィールド4とサブテーブルのフィールド1のデータが一致してサブテーブルのフィールド2のデータを出力)/



回答の条件
  • 1人10回まで
  • 登録:2006/08/01 17:00:01
  • 終了:2006/08/06 22:02:39

回答(2件)

id:Sampo No.1

Sampo回答回数556ベストアンサー獲得回数1042006/08/01 17:34:20

ポイント35pt

フィールド名が重複するとわかりにくいので勝手にフィールド名を命名します。

テーブル main:

title / color1 / color 2 / color3

テーブル colors:

colorID / colorName

お求めの検索は

select

title, c1.colorName, c2.colorName, c3.colorName

from

main, colors as c1, colors as c2. colors as c3

where

color1=c1.colorID and

color2=c2.colorID and

color3=c3.colorID

でできます。

id:alg34 No.2

alg34回答回数1ベストアンサー獲得回数02006/08/01 17:49:01

ポイント35pt

SELECT M.フィールド1, S1.フィールド2, S2.フィールド2, S3.フィールド2

FROM

(((メインテーブル M

LEFT JOIN サブテーブル S1 ON M.フィールド2 = S1.フィールド1)

LEFT JOIN サブテーブル S2 ON M.フィールド3 = S2.フィールド1)

LEFT JOIN サブテーブル S3 ON M.フィールド4 = S3.フィールド1)

とやればできます。

ポイントは、サブテーブルを複数回連結し、一つ一つにS1~S3等別名を振ってやることです。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません