【发布时间】:2018-08-07 10:50:36
【问题描述】:
我有下表学生:
Id FirstName LastName State Index Year Course1 Course2 Course3 Course4 Course5
622 Student622 LastName622 State17 62200 2 54 47 68 67 50
623 Student623 LastName623 State16 62300 3 17 99 37 99 32
624 Student624 LastName624 State2 62400 4 8 71 11 58 86
625 Student625 LastName625 State1 62500 2 39 75 33 77 17
626 Student626 LastName626 State15 62600 3 11 3 4 70 72
627 Student627 LastName627 State13 62700 2 84 77 65 62 76
628 Student628 LastName628 State13 62800 4 87 18 19 4 75
629 Student629 LastName629 State10 62900 2 96 67 14 97 31
Course 1, 2, 3, 4, 5 中的数字是引用以下 Courses 表的 id 的外键值:
Id Name ProfessorId
1 Course 1 8
2 Course 2 14
3 Course 3 4
4 Course 4 3
5 Course 5 6
6 Course 6 2
7 Course 7 14
8 Course 8 4
9 Course 9 5
如何编写脚本以便当我执行而不是外键数字时有课程名称?有什么想法吗?
【问题讨论】:
-
提示:
INNER JOIN -
欢迎了解每种 SQL 语言的基础知识:SQL Joins - Joins (SQL Server)
-
这里真正的问题是您的学生表没有正确规范化。您的表中有所谓的“重复组”,它违反了 1NF。如果您修复设计,查询将很简单。
标签: sql sql-server foreign-keys