我正在学习计算机科学,正在研究数据库系统。我在抓住某些部分时遇到了困难。
说我有以下关系:
Lecturers(LecturerID, Name, DeptID)
Course(DeptID, CrsCode, CrsName, Description)
我注意到它们都共享一个共同的属性DeptID,因此它们是联合兼容的。
我如何列出由计算机科学系(CS)或电子工程系(eEng)讲师授课的所有课程?
我的回答是使用与选择的交集。以下是正确还是接近标记?
πDeptID,CrsName(Course) intersection πDeptID,Name(σDeptID = CS or DeptID = eEng(Lecturers))
我确定可以在这里使用join,但我不确定如何使用谓词。
感谢您的帮助。一旦我理解了在一些情况下使用什么,我相信其余部分会更容易。
感谢您的帮助。
答案 0 :(得分:0)
我会使用一个简单的INNER JOIN。
SELECT DEPTID, CRSNAME
FROM COURSE A
INNER JOIN LECTURERS B on A.DEPTID=B.DEPTID
WHERE B.DEPTID='eENG' or B.DEPTID='CS'
答案 1 :(得分:0)
Departments也必须有一个表,因为你有一个DeptID字段的引用,它应该是一个INT。我假设它是DEPARTMENTS,DeptID和Code作为字段。在这种情况下:
SELECT
*
FROM
Course C
INNER JOIN
LECTURERS L on C.DeptId = L.DeptID
INNER JOIN
Departments D on C.DeptID = D.DeptID
WHERE
D.code = 'eENG' or D.code = 'CS'