3つのテーブルがあります。私がこのクエリを使用していますLEFT JOINを使用してクエリに列を追加します。
tblcandidates
candidateid | candidatename
1 | Abc
2 | Def
tbljudges
judgeid | judgename
1 | Stack
2 | Overflow
tblscores
scoreid | candidateid | judgeid | swimsuit
1 | 1 | 1 | 100
2 | 1 | 2 | 99
3 | 2 | 1 | 100
4 | 2 | 2 | 93
各候補の平均を取得します。
SELECT DISTINCT
(c.candidateid) AS c,
candidatename AS NAME,
j1.swimsuit AS j1,
j2.swimsuit AS j2,
(
j1.swimsuit + j2.swimsuit
)/2 AS average
FROM
tblscores,
tblcandidates c
LEFT JOIN tblscores j1 ON c.candidateid = j1.candidateid
AND j1.judgeid = 1
LEFT JOIN tblscores j2 ON c.candidateid = j2.candidateid
AND j2.judgeid = 2
WHERE tblscores.candidateid = c.candidateid;
出力
c | name | j1 | j2 | average
1 | Abc | 100 | 99 | 99.5
2 | Def | 100 | 93 | 96.5
私の問題は、裁判官が3になった場合、私は裁判官の数に応じて、私のクエリを動的にしたいものです。私の質問は2人の裁判官に限られています。私はまた、彼らがスコアを持っているという証拠のために、審査員の得点を私の出力のように表示したい。
sql fiddleを共有してください。これはMySQLピボットテーブルの問題です。 – 1000111
どのようにSQLのフィドルを作る? –
サンプル[** sql fiddle **](http://sqlfiddle.com/#!9/3fd52/1/0) – 1000111