即使行不存在,MySQL仍将行转换为列

时间:2019-06-27 12:52:09

标签: mysql sql

即使学生在该学科中没有成绩,我也希望将行旋转到列,但要为每项成绩扫描(1-4)提供一个成绩...

这是我的桌子

students             subjects               gradesweeps
id  | stuname        id  |  subname         id  |  gradesweep
1   | steve          1   |  english         1   |  check_1
2   |  Bob           2   |  maths           2   |  check_2
                                            3   |  check_3
                                            4   |  check_4


grades
id | student_id | subject_id | gradesweep_id | grade
1    1            1            1               4
2    1            1            3               6
3    1            1            4               5

学生1在英语中有3项进度检查,而英语却有4项,但希望能够将成绩扫描2视为空结果或为空...

是否可能有这样的结果集;

student_id = 1
subject_id = 1

student_id | subject_id | Check_1 | Check_2 | Check_3 | Check_4
1            1            4                   6         5

甚至更好;

student_id | subject_id | gradesweep_id | grade
1            1            1               4
1            1            2               null or blank
1            1            3               6
1            1            4               5

1 个答案:

答案 0 :(得分:0)

不建议将数据库设计为容纳空列,应避免这样做。 如果您在设计数据库时遇到问题,建议您阅读数据库规范化。以下链接说明了(1NF),然后继续到(2NF)和(3NF)。

https://www.essentialsql.com/get-ready-to-learn-sql-8-database-first-normal-form-explained-in-simple-english/

编码愉快!