Database design 具有内部联接的SQl查询

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 我的问题是,我可以向表中添加哪一列来

我是sql新手。我正在处理sql查询,其中有两个表 表1提供了以下数据:

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-你能给我举个例子吗,因为我是新来的。在我创建第三个表之后,使用什么查询来获取所需的数据。如果您觉得很难理解,请转到给定的链接。我将更详细地解释您。您能否更详细地解释我,因为我刚刚开始学习这方面的知识。如果你不介意的话