Sql server 如何从2个字段连接到另一个表上的1个字段

Sql server 如何从2个字段连接到另一个表上的1个字段,sql-server,Sql Server,在sqlServer上,我有两个表: table1: Students => studentName=david, class1Id=2,class2Id=4 table2: classes=> classId=2, className="class1" classId=4, className="class2" classId和class2Id与类相关。classId 我要执行sql查询以获取: studentName=david, className1="c

在sqlServer上,我有两个表:

table1: Students => studentName=david, class1Id=2,class2Id=4

table2: classes=> classId=2, className="class1"

        classId=4, className="class2"
classId
class2Id
类相关。classId

我要执行sql查询以获取:

studentName=david, className1="class1",className2="class2",
我知道在两个表之间进行连接,但不是这样


谢谢

您只需将
加入
两次:

Select  S.StudentName, 
        C1.ClassName As ClassName1, 
        C2.ClassName As ClassName2
From    Students    S
Join    Classes     C1  On  C1.ClassId = S.Class1Id
Join    Classes     C2  On  C2.ClassId = S.Class2Id

这个问题的根源是桌子的设计有缺陷。这就是所谓的重复组。它违反1NF,应不惜一切代价避免。考虑到当你需要允许每个学生第三个班级时,这个设计变得多么糟糕。您必须更改表并更改查找此信息的单个查询。学生和班级之间的关系应该是多对多的关系。要正确处理这个问题,需要为StudentID和ClassID创建一个桥接表。你的教授在这里给了你一个失败的机会。他们想让你质疑一个糟糕的设计。他们真可耻!!