【问题标题】:Result of query of instructor id =1 is wrong or true讲师id=1的查询结果错误或正确
【发布时间】:2016-11-29 15:44:55
【问题描述】:

问题

如何通过 SQL 查询从 CourseClass 表中获取讲师的日程安排?

Course 表与 Instructor 表多对多关系,生成 InstructorCourse 表。

Course 表与Class 表多对多关系,生成CourseClass 表。 我的图表如下:

ERD database design digram

我尝试的是

SELECT     dbo.Class.*, dbo.Course_Class.*, dbo.Course.*, dbo.Inst_Course.*, dbo.Instructor.*
FROM         dbo.Class INNER JOIN
                      dbo.Course_Class ON dbo.Class.ClassID = dbo.Course_Class.ClassID INNER JOIN
                      dbo.Course ON dbo.Course_Class.CourseID = dbo.Course.CourseID INNER JOIN
                      dbo.Inst_Course ON dbo.Course.CourseID = dbo.Inst_Course.CourseID INNER JOIN
                      dbo.Instructor ON dbo.Inst_Course.InstID = dbo.Instructor.InstructorID
WHERE     (dbo.Inst_Course.InstID = 1)

我得到 4 行作为查询的结果,我发现它是错误的,它必须是 2 行。 我的结果是错误的还是正确的?

Result of query is wrong or true

【问题讨论】:

  • 为什么你认为它是错误的?你认为应该是哪两行?请阅读我发布的有关此设计的其他最近问题的答案。 PS Re SO问题:请将信息放入您的问题中,而不是链接中。您可以键入与 ER 图对应的架构。您可以在 sqlfiddle.com 上运行它并将输入和输出粘贴到您的问题中。阅读How to Ask

标签: sql-server-2008 database-design relationship erd entity-relationship-model


【解决方案1】:

您的结果是正确的。 1)您的结果中没有任何重复的行。 2)您可以通过查看源表来仔细检查。 Inst_Course 中的讲师 1 有 2 个课程 ID(1 和 2),对应于 Course_Class 中的 4 行(参见 CourseID 列,有 3 个“1”时隙和 1 个“2”时隙)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-22
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 2018-06-27
    • 2018-08-27
    • 2021-12-24
    • 2017-02-17
    相关资源
    最近更新 更多