【问题标题】:SQl query with inner join带有内部连接的 SQL 查询
【发布时间】:2018-09-15 01:32:30
【问题描述】:

我是 sql 新手。我正在处理有两个表的 SQL 查询 表1有这个数据:

Student_id        Name      Surname         Department 

表2有这个数据:

Exam_id          Exam        Date

我的问题是我可以在表格中添加什么列以将这些表格连接在一起并从示例中获取所需的数据:一名参加物理考试的学生。

【问题讨论】:

  • 能补充一下你用的是哪个数据库吗,SQL就是查询语言
  • 这是数据建模,不是 SQL:en.wikipedia.org/wiki/Associative_entity
  • 这不是一个编程问题,因为您没有任何 SQL 代码或它需要什么 RDBMS/方言的证据;无论如何,如果您尝试搜索,我很难相信您不会在 SO 或其他 SE 网站上找到相同问题的答案(许多,更具体的版本),更不用说在教科书或教程中.

标签: database-design data-modeling


【解决方案1】:

创建第三个表,您可以在其中添加Student_IdExam_Id。该表将充当上述两个表之间的桥接表。

因为这种情况是针对多对多关系的。

例如:

一个学生可以在不同的日期参加多个考试,并且可以由不同的学生进行考试。

因此,如果您想在StudentExam 之间建立关系,您的数据库图将类似于上图。

举个简单的例子:

学生

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

现在您将如何在这两个表之间建立关系? 答案是您必须像这样创建一个桥接表(如前所述)

Student_Exam_link

Id  Student_ID  Exam_Id
1       1         1
2       2         1
3       1         2
4       2         2
5       1         3
6       2         4

上表第一行写着:Student with id 1 ie. ABC has the exam of id 1 i.e. Physics

同样,第二行显示:Student with id 2 ie. DEF has also the exam of id 1 i.e. Physics

等等。

现在,如何加入这些表?

在这三个表上一起使用Join 以获得所需的结果。例如: 将Student 表与Student_Exam_link 表连接到student_id,然后将结果表与Exam 表连接到exam_id。

更多信息请点击以下链接:

https://fmhelp.filemaker.com/help/16/fmp/en/index.html#page/FMP_Help/many-to-many-relationships.html

【讨论】:

  • #Nishant - 你能给我一个例子吗,因为我是新手。在我创建第三个表之后,使用什么查询来获取所需的数据
  • 如果您觉得难以理解,请转到给出的链接,我会更详细地为您解释。
  • 能否请您详细解释一下,因为我刚开始在这方面学习。如果你不介意
【解决方案2】:
One Student can takes Many Exams and also Many Students can take One Exam.

因此它导致多对多关系。更好的方法是引入一个带有列的新映射表Student Exam Mapping table

id   Exam_id    Student_id

【讨论】:

    猜你喜欢
    • 2011-12-05
    • 2016-06-11
    • 2013-05-27
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    相关资源
    最近更新 更多