重複の可能性:
2つの列を1つの列に結合するSQLクエリ
そのため、MySQLでクエリを正しく取得するのに問題があります。
これが私が今使っているテーブルです
DROP TABLE IF EXISTS `qualifications`;
CREATE TABLE `qualifications`(
`activity` int NOT NULL,
`group` int NOT NULL,
`tournament` int NOT NULL,
`judge_1` int NOT NULL,
`grade_1` int NOT NULL,
`judge_2` int NOT NULL,
`grade_2` int NOT NULL,
`judge_3` int NOT NULL,
`grade_3` int NOT NULL,
PRIMARY KEY(`activity`,`group`),
FOREIGN KEY(`activity`) REFERENCES `activities`(`id`),
FOREIGN KEY(`group`) REFERENCES `groups`(`id`),
FOREIGN KEY(`judge_1`) REFERENCES `judges`(`id`),
FOREIGN KEY(`judge_2`) REFERENCES `judges`(`id`),
FOREIGN KEY(`judge_3`) REFERENCES `judges`(`id`),
FOREIGN KEY(`tournament`) REFERENCES `tournaments`(`id`)
)ENGINE=InnoDB, DEFAULT CHARSET=utf8;
私が欲しいのは、アクティビティ名、グループ名、トーナメント名、および3人の審査員全員の名前と成績を取得することです。これが私がこれまでに持っているクエリです:
select a.name as Game, t.name as Tornament, g.name as "Group", j.name as Judge1, j.name as Judge2, (q.grade_1+q.grade_2+q.grade_3) as Grades from activities a, groups g, judges j, tournaments t, qualifications c where
a.id = q.activity and t.id = q.tournament and g.id = q.group and g.id = 2;
もちろん、これは審査員名を除いて正常に機能します... 1つの結果で3人の審査員名を取得するにはどうすればよいですか?
よろしくお願いします。うまく説明できなかったらごめんなさい。