こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

数種類のテーブルを結合させて呼び出し

こんにちは。
サークルメンバーのマラソンのタイムを管理するデータベースを作っています。
現在作っているテーブルは、
memberinfo(会員番号(number)、名前(name))
full(会員番号(number)、日付(date)、タイム(time))
10km(会員番号(number)、日付(date)、タイム(time))
です。
これら3つのテーブルからメンバー全員のすべての距離の記録を抽出するsql文を作っています。
例えば、会員番号1のAさんが2005年にフルマラソンの記録が2:55:47で2004年に10キロの記録が34:53、会員番号2のBさんが2003年にハーフマラソンの記録が1:20:12で2003年に10キロの記録が40:21だとすると
結果が
1 A 2005 full 2:55:47
1 A 2004 10km 34:53
2 B 2003 half 1:20:12
2 B 2003 10km 40:21
という結果が出力されるというものです。
sql文は以下のとおりです。

$sql = "select memberinfo.number, name, date, time from memberinfo, full, half, 10km where (memberinfo.number = full.number = half.number = 10km.number)";

これだとsql文が間違っているようです。
どうすればよいでしょうか?
よろしくお願いします

投稿日時 - 2005-07-05 16:39:38

QNo.1493567

暇なときに回答ください

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(2)

ANo.2

たぶん time や date 、fullで引っかかっています
意味が分からなかったら、とりあえず全部のテーブルとフィールド名を 「`」で囲ってあげてください

それとSELECTの指定の仕方まちがっています、name date time のテーブルが指定されていません


つまりこうなります
SELECT `memberinfo.number`, `memberinfo.name`, `memberinfo.date`, `memberinfo.time`
FROM `memberinfo`, `full`, `half`, `10km`
WHERE
~以下略~

投稿日時 - 2005-07-06 15:08:21

ANo.1

SQLでWHERE節にはこのように条件はかけません。
一個一個分割して"and" でつないでください。

where (memberinfo.number = full.number and memberinfo.number = half.number and
memberinfo.number = 10km.number)
って感じでしょうか?

投稿日時 - 2005-07-05 16:48:15

お礼

ありがとうございます。
whereの部分を訂正しました。
ほかにも問題があるみたいで、まだエラー表示されてしまうのですが、もう少しがんばってみます!

投稿日時 - 2005-07-06 09:52:52

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-