0

我正在学习计算机科学并且正在复习数据库系统。我很难掌握某些部分。

假设我有以下关系:

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 ,但我不确定如何使用谓词。

谢谢你的帮助。一旦我了解在几种情况下使用什么,我相信其余的会更容易。

谢谢你的帮助。

4

2 回答 2

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'
于 2011-05-24T11:27:08.410 回答
0

还必须有一个部门表,因为您有对 DeptID 字段的引用,该字段应该是一个 INT。我假设它是具有 DeptID 和 Code 作为字段的 DEPARTMENTS。在这种情况下:

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'
于 2011-05-24T11:31:07.767 回答