2017-10-06 65 views
0

使用T-SQL返回课程中没有学生的课程名称。T-SQL查询返回没有连接的用户用户

StudentCourses: 

    StudentCourseID 
    StudentID 
    CourseID 



Courses: 

    CourseID 
    CourseName 

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

+1

我投票,因为这个问题显示零努力缩小这个问题作为题外话,因此我downvoting它。 –

+1

你以前的[问题](https://stackoverflow.com/questions/46595467/sql-three-tables-to-return-one-row)提到家庭作业(以及不同的dbms)。如果你不尝试,你不会学习。 – SMor

回答

2

使用not exists运营商很可能是这样做的最简单的方法:

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

你可以做到这一点使用LEFT JOIN - 这将返回所有课程和相应的学生。使用WHERE条款,我们只过滤该课程不要求学生:

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