输出MySQL结果
所以我有3张桌子:输出MySQL结果,mysql,Mysql,所以我有3张桌子: student -studentid -studentname course_offerings -course_offeringid -course -type scores -student_studentid -course_offering_course_offeringid -score 当我进行查询时: SELECT studentid, studentname, course, type, score FROM scores INNER JOIN stud
student
-studentid
-studentname
course_offerings
-course_offeringid
-course
-type
scores
-student_studentid
-course_offering_course_offeringid
-score
当我进行查询时:
SELECT studentid, studentname, course, type, score
FROM scores
INNER JOIN student ON scores.student_studentid = student.studentid
INNER JOIN course_offering ON scores.course_offering_course_offeringid = course_offering.course_offeringid
我得到如下输出:
studentid studentname course type score
123345 Doe, John 123 Exam 1 100
123345 Doe, John 123 Exam 2 95
123345 Doe, John 123 Exam 3 75
123345 Doe, John 123 Final 93
543211 Doe, Jane 123 Exam 1 70
543211 Doe, Jane 123 Exam 2 91
543211 Doe, Jane 123 Exam 3 99
543211 Doe, Jane 123 Final 43
.
.
.
我希望输出为:
studentid studentname course Exam 1 Exam 2 Exam 3 Final
123345 Doe, John 123 100 95 75 93
543211 Doe, Jane 123 70 91 99 43
仅使用MySQL就可以做到这一点吗?如果不硬编码考试数量,这是不可能的。你可以让学生参加3次不同的考试,确保第一个id<第二个id<第三个id可以阻止双打的发生
如果你需要一个额外的考试,或者某人只有两个考试,你需要处理它。如果不对3个(或更多/更少)联接进行硬编码,这种透视是不可能的。好吧,SQL不允许您这样做,所以最好在应用程序中执行这种处理
如果你真的想在MySQL中实现这一点,你可以使用比普通SQL略为强大的SQL(例如,你可以使用a)。我认为这是可能的。我可以问一下,这是否是你拥有的完整的表结构吗?我认为你在课程设置和分数表中都缺少studentid。我认为在
分数表中有studentid,没有理由在课程设置表中包含它。是的,我相信这是正确的。很抱歉。我还建议您删除“type”字段并将其放在“scores”表中。