人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPとMYSQLでサイトを制作しています。
MYSQLで、下記のテーブルを結合してデータを表示したいのですが、どのようにしたら良いでしょうか?

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

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

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





●質問者: black_kenchan
●カテゴリ:ウェブ制作
✍キーワード:MySQL PHP サイト テスト データ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Sampo
●35ポイント

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

テーブル 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

でできます。


2 ● alg34
●35ポイント

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等別名を振ってやることです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ