세 개의 테이블이 있습니다.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