我们有三种关系:

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/

10-11 23:09
查看更多