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

INT である必要がある DeptID フィールドへの参照があるため、部門のテーブルも必要です。フィールドとして 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 に答える