【问题标题】:One to One relationship with both tables having multiple entries (Access SQL)具有多个条目的两个表的一对一关系 (Access SQL)
【发布时间】:2015-11-10 06:43:26
【问题描述】:

我在尝试实现这个数据库时遇到了麻烦;我有三个表 Courses、Schedules 和 Students。

学生有
学生 ID、姓名、GPA 等。

时间表有
ID, course1, course2, course3

课程有
courseID, courseName, courseAbbv, courseCredits, courseDepartment


Students.studentID 和 Schedules.ID 具有一对一的关系

Courses.courseID 与 Schedules.course1,course2,course3 是一对多的关系



我想查询一个可以显示学生日程的查询:

学生姓名、课程 1、课程 2、课程 3
其中 course1, course2, course3= courseAbbv

【问题讨论】:

    标签: sql ms-access one-to-one


    【解决方案1】:

    我想这些表有以下关系。

    学生

    • Student_Id (PK)

    时间表

    • Schedule_Id (PK)

    • Course_Id (FK)

    • Student_Id (FK)

    课程

    • Course_Id (PK)

    您的日程表不应包含每门课程的列,而应包含对课程表的引用。

    【讨论】:

    • 对不起,我忘了添加一些外键。我的 Schedules 表中的 course1、course2 和 course3 是引用 Courses 表的外键。但是,每当我使用关系创建查询时,我似乎都无法显示课程名称
    • 您的查询是什么样的?
    • SELECT studentName, course1, course2, course3 FROM Students, Schedules, Courses WHERE Students.studentID = Schedules.studentID AND Schedules.course1 = Courses.ID AND Schedules.course2 = Courses.ID AND Schedules.course3 = Courses.ID;
    • 很抱歉我是这个网站的新手,尝试格式化但无法正常工作
    • 您不会从以下查询中获得任何数据,因为课程 1、课程 2 和课程 3 都将不同,您的查询假定它们是相同的。如果您想使用产品连接来完成此操作,则需要为课程表名称提供别名
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-31
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    相关资源
    最近更新 更多