重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

こんにちは。
サークルメンバーのマラソンのタイムを管理するデータベースを作っています。
現在作っているテーブルは、
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文が間違っているようです。
どうすればよいでしょうか?
よろしくお願いします

A 回答 (2件)

SQLでWHERE節にはこのように条件はかけません。


一個一個分割して"and" でつないでください。

where (memberinfo.number = full.number and memberinfo.number = half.number and
memberinfo.number = 10km.number)
って感じでしょうか?
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/07/06 09:52

たぶん time や date 、fullで引っかかっています


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

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


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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す