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

MySQLについて質問です。以下のSQL文によってtblarchitectの全データとその後ろにareaidに対応するareanameを結合しました。さらにその後ろにexpertiseidに対応するexpertisenameを結合するにはどのように記述すればよいのでしょうか?
つまり「tblarchitectの全データ」+「areaidに対応したareaname」+「expertiseid1に対応したexpertisename」+「expertiseid2に対応したexpertisename」+「expertiseid3に対応したexpertisename」+「expertiseid4に対応したexpertisename」というように出力したいです。

SELECT tblarchitect.*, area
FROM tblarchitect
RIGHT JOIN tblarea
ON tblarchitect.areaid = tblarea.areaid
ORDER BY no DESC;

テーブル構造
tblexpertise
+---------------+
| Field |
+---------------+
| expertiseid |
| expertisename |
+---------------+

tblarea;
+----------+
| Field |
+----------+
| areaid |
| areaname |
+----------+

tblarchitect;
+-----------------+
| Field |
+-----------------+
| no |
| name |
| rname |
| posision |
| zip |
| address |
| tel |
| fax |
| url |
| mail |
| areaid |
| info |
| expertiseid1 |
| expertiseid2 |
| expertiseid3 |
| expertiseid4 |
| photofilename |
| prphotofilename |
| regdate |
+-----------------+

●質問者: moks
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Area FAX FIELD MySQL name
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● b-wind
●100ポイント ベストアンサー

http://dev.mysql.com/doc/refman/4.1/ja/join.html

そのまますべて JOIN していくだけでいいです。

SELECT arc.*, area,
 exp1.expertisename, exp2.expertisename, exp3.expertisename, exp4.expertisename,
 FROM tblarchitect AS arc
 RIGHT JOIN tblarea USING ( areaid )
 LEFT JOIN tblexpertise as exp1
 ON arc.expertiseid1 = exp1.expertiseid
 LEFT JOIN tblexpertise as exp2
 ON arc.expertiseid1 = exp2.expertiseid
 LEFT JOIN tblexpertise as exp3
 ON arc.expertiseid1 = exp3.expertiseid
 LEFT JOIN tblexpertise as exp4
 ON arc.expertiseid1 = exp4.expertiseid
ORDER BY no DESC;
◎質問者からの返答

上手くいきました。ありがとうございました。

関連質問


●質問をもっと探す●



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