私は、このフォーラムや他の多くから、この問題を解決するためにさまざまな方法を試してきました。私はこの問題の解決策や私にまっすぐ答えを与えるドキュメントを見つけることができないようです。MySQL:同じテーブルで異なるWHERE条件を使用して、複数のSELECTクエリを結合する方法は?
あなたは私のためにそれを見ることができたかと思いました。
おかげ
問題:
私は現在、1ラウンドのスコアを表示することができています以下の表 participant_scores リーグ ラウンド
を使用してデータベースを持っています、一度に1ラウンド...私はそれがほしいと思う方法である。 しかし、私は各参加者がすべてのラウンドで得た得点を表示したい。 2つのラウンドがあるとします。 - 参加者の名前 スコア=この現在のラウンド 合計スコアのスコア=このリーグのラウンドスコアのすべてが一緒に加え
Currently viewing league 20, Round 1
of 2:
User Name | Score | Total Score
Tom | 10 | 200
James | 50 | 300
ユーザ名:私は私の結果画面の出力は次のようになりたいです。
私のMySQLクエリは以下のとおりです。厄介なことのためにお詫び申し上げます、私は約100回書き直しました。そして、この現在の方法は完全に機能する唯一の方法です。
>>あなたがここに欲しいleague_participants_query(mysqlの)
# FIELDS
SELECT
participants.participant_id, # ID - used for functions
participants.participant_name, # NAME
participants.participant_gender, # Participant info
classes.class_name, # Class name
schools.school_name, # School name
participant_scores.participant_score, # Participant score
participant_scores.participant_score_id
# TABLES
FROM participant_scores, participants, classes, league_schools, schools, leagues, rounds
# filter leagues
WHERE leagues.league_id = 51
AND rounds.league_id = 51 # the current league we are viewing
AND rounds.round_id = 25 # the current round of the league we are viewing
# filter league schools
AND participant_scores.round_id = 25 # the current round of the league we are viewing
# filter schools allowed
AND league_schools.league_id = 51 # the current league we are viewing
# Filter schools
AND schools.school_id = league_schools.school_id
# Filter classes
AND classes.school_id = schools.school_id
AND classes.year_group_id = leagues.year_group_id
# Filter participants
AND participants.class_id = classes.class_id
# Filter participant_scores
AND participant_scores.participant_id = participants.participant_id
#Grouping
GROUP BY participants.participant_id
こんにちは、ありがとうございました。私は初心者であることをあなたに知らせなければならず、これはすべて私にとっては試行錯誤です。 私は自分のコードでエラーを特定するのに役立つプログラムを使用していますが、これまでのところ私はあなたの提案された変更でスクリプトを実行できませんでした。私はそれらを間違って入力する必要があります。 私のコードをここに再度掲載することはできません。私は240文字しか残っていません...私はそれを以下の答えに入れます。 ありがとう! – Tom
また、参加者は多くのリーグに加わることができます。だから、このリーグの一員である参加者だけを選ぶというコードを入力しなければならないかもしれない。 - あなたが私にそれを披露することができるなら、その脚本を作ることができます。 もう一度ありがとう! – Tom