Database design 具有内部联接的SQl查询
我是sql新手。我正在处理sql查询,其中有两个表 表1提供了以下数据:Database design 具有内部联接的SQl查询,database-design,data-modeling,Database Design,Data Modeling,我是sql新手。我正在处理sql查询,其中有两个表 表1提供了以下数据: Student_id Name Surname Department Exam_id Exam Date 表2提供了以下数据: Student_id Name Surname Department Exam_id Exam Date 我的问题是,我可以向表中添加哪一列来
Student_id Name Surname Department
Exam_id Exam Date
表2提供了以下数据:
Student_id Name Surname Department
Exam_id Exam Date
我的问题是,我可以向表中添加哪一列来连接这些表,并从示例中获得所需的数据:一名参加物理考试的学生 创建第三个表,您可以在其中添加
学生Id
和考试Id
。此表将充当上述两个表之间的桥接表
因为这种情况适用于多对多关系
例如:
一个学生可以在不同的日期参加多个考试,一个考试可以由不同的学生进行
因此,如果您想在学生
和考试
之间建立关系,那么您的数据库图将与上面的图类似
举一个简单的例子:
学生
Student_Id Name SurName Department
1 ABC XYZ Science
2 DEF YXZ Science
考试
Exam_Id Exam Date
1 Physics 12-4-2018
2 Chemistry 15-4-2018
3 Biology 18-4-2018
4 Maths 20-4-2018
现在,您将如何在这两个表之间建立关系?
答案是您必须创建一个这样的桥接表(如前所述)
学生考试链接
Id Student_ID Exam_Id
1 1 1
2 2 1
3 1 2
4 2 2
5 1 3
6 2 4
上表第一行显示:id为1的学生,即ABC有id为1的考试,即物理
同样地,第二排写着:id为2即DEF的学生也有id为1即物理的考试
等等
现在,如何连接这些表
在这三个表上一起使用Join
,以获得所需的结果。例如:
将Student
表与Student\u-Exam\u链接
table on Student\u-id连接,然后将结果表与Exam
table on-Exam\u-id连接
有关更多信息,请访问以下链接:
因此,它导致了多对多关系。更好的方法是引入一个新的映射表带列的学生考试映射表
id Exam_id Student_id
你能添加你正在使用的数据库吗,SQL只是查询语言这是数据建模,不是SQL:这不是一个编程问题,因为你没有任何SQL代码或它需要什么RDBMS/方言的证据;不管怎么说,我发现很难相信,如果你试图搜索,更不用说在教科书或教程中,你不会在SO或其他SE网站上找到相同问题的答案(许多更具体的版本)。#Nishant-你能给我举个例子吗,因为我是新来的。在我创建第三个表之后,使用什么查询来获取所需的数据。如果您觉得很难理解,请转到给定的链接。我将更详细地解释您。您能否更详细地解释我,因为我刚刚开始学习这方面的知识。如果你不介意的话