1

以下はscheme、オブジェクト指向設定のデータベースの場合です。すべてのリレーションはオブジェクトのコレクションになります。学生は人であり、学部も人です。これらは、「isa」というラベルの付いた有向エッジとして表示されます。他のすべての有向エッジは参照属性を示します。CourseのPreReq属性は一連の参照であることに注意してください。

ここに画像の説明を入力してください

これが私が書く方法を理解できないクエリです:

StudentIDによる登録コレクションを再編成します。学生ごとに、学生のIDと成績を取得します。グレードはCourseCodeLetterGrade属性で構成されるリレーションである必要があります。

再編成することで、データベースを更新するのではなく、その順序で情報を取得することを意味すると確信しています。

4

1 に答える 1

1

すべてのフィールドが適切に参照されているわけではなく、手順が少し...まあ、欠けているので、いくつかの仮定をします。すなわち:

  1. Studentテーブルには、PersonテーブルのIDフィールドと1対1の関係にある「StudentID」というフィールドがあります。

  2. 「再編成」は「選択」を意味します。奇妙な言い回しです。

  3. Personテーブルを除き、他のすべてのIDは通常の命名規則に従います。意味、<TableName>Id。たとえば、studentテーブルのプライマリIDはStudentIDです。

  4. 質問の「LetterGrade」は、実際には登録テーブルの「Grade」フィールドを指します。

  5. 「Info」で終わるすべてのフィールドは、「Id」で終わる同等のフィールドへの外部キーです。例:Enrollment.StudentInfoはStudent.StudentIdにマップされます

の線に沿った何か

SELECT S.StudentID, E.Grade, C.CourseCode
FROM Student S
  INNER JOIN Enrollment E on (E.StudentInfo = S.StudentId)
  INNER JOIN Offering O on (O.OfferingId = E.OfferingInfo)
  INNER JOIN Course C on (C.CourseId = O.CourseInfo)
ORDER BY S.StudentId
于 2011-10-19T06:26:39.203 に答える