0

我有一张桌子,里面有我称之为“课程”(法语)的课程,里面有几个课程,我已经将它们与学生联系起来,他们之间有一张桌子,看看他们是否去上课。

我想用 SELECT 和未选择的数据返回数据。

所以,如果一个学生学习了 5 门 3 门课程,我想退回他遵循的 3 门课程和他没有遵循的 2 门课程。

有没有办法做到这一点?

4

2 回答 2

1

这将根据您的 RBDMS 而有所不同,但类似于以下内容应该可以工作:

SELECT
    s.Name,
    l.Name,
    CASE WHEN sl.StudentID IS NULL 
        THEN 'Not Follows' 
        ELSE 'Follows' 
    END AS Status
FROM
    Student s
    CROSS JOIN Lessons l
    LEFT JOIN Student_Lessons sl
        ON s.ID = sl.StudentID
        AND l.ID = sl.LessonID
于 2012-12-10T17:13:29.140 回答
0

这是一个outer join. 如果您确定了您的数据库引擎(可能具有特定的外连接语法)和您的模式,那么您可以获得一些有关实际 SQL 的帮助。

于 2012-12-10T17:08:22.227 回答