私はシナリオ、式1を説明します。数式1の各チームに2人のドライバー、24人のドライバー、12のチームがあります。私はteam_statsテーブルから以下のように計算されたポイントを取得する必要がありますが、driver_statsテーブルからポール、表彰台、勝利を得るので、sebastion vettelとmark webberは両方ともteam_id = '3'のメンバーです。私は、それぞれのdriver_statsテーブルから極、表彰台、勝利を得てそれらを合計する必要がありますが、team_statsテーブルからTEAMのポイントを計算してください。私が遭遇したのは、driver_statsテーブルに2つのドライバがあるので、各team_idのチームポイントを2回計算しているということです。チーム_スタットテーブル内のポイントだけをSUMにする必要があります。のメンバーです。これは動作しますが、driver_statsテーブルからポイントを算出下回っ異なるテーブル内の2つの列のMYSQL SUM
DRIVER_STATS TABLE
| track_id | drivers_id | qual_pos | race_pos | overtakes | points
TEAM STATS TABLE
| track_id | team_id | points |
DRIVERS TABLE
| driver_id | drivername | team_id |
TEAM TABLE COLUMNS
|team_id | teamname | value
さて、それは正しく一緒に2つのドライバを追加することにより、...など追い越す極のための合計を行います。代わりにteam_statsテーブル内の各team_idのポイント部分をSUMにする必要があります。そのテーブルには、driver_statsテーブルの2つのドライバ、1つのチームに2つのドライバが1つしかありません。
SELECT t.teamname,
t.value,
SUM(IF(s.qual_pos = '1', 1,0)) AS poles,
SUM(IF(s.race_pos <= '3', 1,0)) AS podiums,
SUM(IF(s.race_pos = '1', 1,0)) AS victories,
SUM(s.overtakes) AS overtakes,
SUM(CASE
WHEN s.track_id = (SELECT MAX(track_id) FROM driver_stats) THEN
points
ELSE
0
End) AS lastracepoints,
SUM(points) AS points
FROM drivers d
INNER JOIN driver_stats s
ON d.drivers_id = s.drivers_id
AND d.team_id = 3
LEFT JOIN teams t
ON d.team_id = t.team_id
GROUP BY
t.teamname
これは私もそれを試みて達成するために変更したクエリです。
SELECT t.teamname,
t.value,
SUM(IF(s.qual_pos = '1', 1,0)) AS poles,
SUM(IF(s.race_pos <= '3', 1,0)) AS podiums,
SUM(IF(s.race_pos = '1', 1,0)) AS victories,
SUM(s.overtakes) AS overtakes,
SUM(CASE
WHEN ts.track_id = (SELECT MAX(track_id) FROM team_stats) THEN
ts.points
ELSE
0
End) AS lastracepoints,
SUM(ts.points) AS points
FROM drivers d
INNER JOIN driver_stats s
ON d.drivers_id = s.drivers_id
AND d.team_id = 3
LEFT JOIN teams t
ON d.team_id = t.team_id
INNER JOIN team_stats ts
ON ts.team_id = d.team_id
GROUP BY
t.teamname
数字はちょっと、それは内の各ドライバーのために二回team_statsテーブルの合計をやっているように見える、それにteam_statsに参加してteam_statsに合計ポイントを変更することで、この1になりましコントロールの外に出ますdriver_statsテーブルここで一度実行する必要があります。
ご協力いただきまして誠にありがとうございます。
あなたには、いくつかのサンプルデータ/出力を投稿できるのでしょうか? –