2017-10-06 1 views
0

T-SQLを使用すると、生徒のいないコースのCourseNameが返されます。接続されていないユーザーがいない行を返すT-SQLクエリ

StudentCourses: 

    StudentCourseID 
    StudentID 
    CourseID 



Courses: 

    CourseID 
    CourseName 

CourseNameには学生がいません。 どこから始めたらいいのか分からないので、私の脳は揚げられているかもしれません。 私はこれのために左の参加が必要でしょうか? not exists演算子を使用して

+1

、したがって、私はそれをdownvotingています。 –

+1

前の[質問](https://stackoverflow.com/questions/46595467/sql-three-tables-to-return-one-row)に宿題(および異なるdbms)が記載されていました。あなたが試しなければ、あなたは学ばないでしょう。 – SMor

答えて

2

は、おそらくこれを行うための最も簡単な方法は、次のようになります。

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; 
関連する問題