查找修读“CS”系所有课程的学生人数

问题描述 投票:0回答:1
students (sid, sname)
courses (cid, cname, dept)
take (sid, cid, grade)

我们想要找到参加“CS”系所有课程的学生的学生人数。

为什么第 4 行是答案?

它与第 1 行到第 3 行有何不同?

我在 DB 中的 Solved-Ex 中读到了这篇文章。

enter image description here

database relational-database relational-algebra
1个回答
1
投票

第四行的另一种表达方式是:

all students
except
(
    all combinations of students and CS courses
    except
    all taken courses
)

括号内的集合包含所有未修读的学生 + CS 课程组合。从所有学生中减去这个,你就得到了参加所有 CS 考试的学生。

© www.soinside.com 2019 - 2024. All rights reserved.