我们有三种关系:
Students(sid, sname)
Courses(cid, cname, dept)
take(sid, cid, grade)
We want to find student numbers of students whose these students take all courses that present in 'CS' department
。为什么(第4行)是这个问题的答案?
任何人都可以说(第1行)和(第3行)不同。我在数据库里读到了这个。
最佳答案
另一种表达第四行的方式是:
all students
except
(
all combinations of students and CS courses
except
all taken courses
)
括号之间的集合包含所有未参加的学生+CS课程组合。从所有的学生中减去这个,你就得到所有参加过CS考试的学生。
关于sql - 关系代数和一个复杂的例子,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28942035/