如何链接(关联)这两个表MySQL

时间:2013-08-08 14:52:16

标签: mysql

问题

  1. 学生注册课程。
  2. 将该课程名称和注册日期添加到可以与已注册学生识别的student_courses
  3. 合并这两个表格以显示学生注册的courses
  4. 我应该如何做到这一点,Studentstudent_courses之间的关系是什么,以实现我的目标。

    enter image description here

3 个答案:

答案 0 :(得分:2)

我要做的是在student_courses中添加一个字段作为学生的个人编号,并将courseId添加到student_courses。这样很容易加入所有3个表

答案 1 :(得分:1)

您使用 student_courses 表格走在正确的轨道上。

因为学生和课程之间的关系可以是多对多的(即多个学生可以注册多个课程),所以需要一个关系表来将课程链接到学生。

student_courses应存储对学生和课程主键的外键引用,并包括任何与注册相关的字段(如注册日期)。通过这样做,您可以生成一个sql语句,用于构建学生与之相关的所有课程的列表:

select
    sc.registrationdate, c.*
from
    student_courses sc
    join student s on s.personalNumber = sc.student_id
    join courses c on c.courseId = sc.courses_id
where 
    s.personalNumber = 123;

或者如果您想找到与课程相关的所有学生:

select
    s.personalNumber, s.firstName, s.lastName
from
    student_courses sc
    join student s on s.personalNumber = sc.student_id
    join courses c on c.courseId = sc.courses_id
where 
    c.courseId = 123;

希望有所帮助。

答案 2 :(得分:0)

我在课程和学生之间添加了多对多关系,并生成了一个新表。在那张表中,我添加了一个日期。