【问题标题】:T-SQL query to return row with no connected UsersT-SQL 查询返回没有连接用户的行
【发布时间】:2017-10-06 06:07:19
【问题描述】:

使用 T-SQL 返回没有学生的课程的 CourseName。

StudentCourses:

    StudentCourseID
    StudentID
    CourseID



Courses:

    CourseID
    CourseName

我必须找出哪个 CourseName 中没有学生。 也许我的大脑被炸了,因为我不知道从哪里开始。 我需要一个左连接吗?

【问题讨论】:

  • 我投票结束这个问题作为离题,因为这个问题显示零努力,因此我反对它。
  • 您之前的@​​987654321@ 提到了作业(以及不同的dbms)。如果你不尝试,你就学不会。

标签: sql sql-server tsql select


【解决方案1】:

使用not exists 运算符可能是最简单的方法:

SELECT coursename
FROM   course c
WHERE  NOT EXISTS (SELECT *
                   FROM   studentcourses s
                   WHERE  s.courseid = c.courseid)

【讨论】:

    【解决方案2】:

    您可以使用LEFT JOIN 执行此操作 - 它会返回所有课程和相应的学生。使用WHERE 子句,我们只过滤没有学生的课程:

    SELECT coursename
    FROM  course c
    LEFT JOIN studentcourses  sc
        ON c.courseid = sc.courseid
    WHERE sc.courseid IS NULL;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-30
      • 2018-03-18
      • 2012-10-03
      • 2021-07-25
      • 1970-01-01
      相关资源
      最近更新 更多