2
테이블 tbl_contestant, tbl_criteria 및 tbl_judges가 있습니다. 그리고 나서이 결과를 tbl_score로 합쳐서 1 테이블 더 가져 왔습니다. 내가이 출력을 달성 할 수있는 방법MYSQL/Query : 테이블 행을 열로 만드는 방법
tbl_criteria
------------------------
crit_id | criteria_name
16 | sports
tbl_judges
------------------------
judge_id | judge_name
61 | first
62 | second
63 | third
tbl_cotestant
--------------------------------------
con_id | contestant_number | contestant_name |
1 | 1 | john |
2 | 2 | sy |
3 | 3 | Nah |
tbl_score
--------------------------------------------------
score_id | crit_id | judge_id | contestant_number | score
1 | 16 | 61 | 1 | 25
2 | 16 | 61 | 2 | 25
3 | 16 | 61 | 3 | 25
4 | 16 | 62 | 1 | 25
5 | 16 | 62 | 2 | 73
6 | 16 | 62 | 3 | 59
7 | 16 | 63 | 1 | 70
8 | 16 | 63 | 2 | 80
9 | 16 | 63 | 3 | 70
는 judge_id 행 crit_id
contestant_number | contestant_name | 16_judge_61 | 16_judge_62 | 16_judge_63 | total
1 | john | 25 | 25 | 70 |
2 | sy | 25 | 73 | 80 |
3 | Nah | 25 | 59 | 70 |
수정하십시오 내 쿼리 당신은이 문제를 해결하는 CASE를 사용할 수
SELECT DISTINCT(c.contestant_number) , contestant_name , j1.sports as
16_judge_61, j2.sports as 16_judge_62, j3.sports as 16_judge_63 from
tbl_criteria , tbl_score, tbl_contestant c
LEFT JOIN tbl_ // <-- i have no idea how start from here joining those 4 tables together
당신은 프리젠 테이션 계층의 정렬 반대로 당신이 MySQL로 출력하고자 확실 해요? – Strawberry
'일반'SQL 쿼리를 사용하여이 작업을 수행 할 수 없습니다. 근본적으로 열을 '피벗 (pivot)'하는 수단이 필요합니다. 참조 : http://stackoverflow.com/questions/1241178/mysql-rows-to-columns http://sqlfiddle.com/에서 테스트 데이터로 SQL 바이올린을 작성하여 공유 한 경우 이에 대한 도움이 필요할 수 있습니다. –
@ AlanHay 고맙습니다. tbl_score가 이미 구축 되었기 때문에 judge_id 행을 열로 바꿀 수 있기 때문에 이전 질문이 잘못되었다고 생각합니다. –