列出学生 Altvater 在 I-2008 学期修读的课程名称

List the names of the course(s) student Altvater took in semester I-2008

我卡在了一个问题上 "List the names of the course(s) student Altvater took in semester I-2008" 如果有人能指导我正确的方向,我将不胜感激。我假设我会使用某种连接。请参考这张图http://www.csc.villanova.edu/~mdamian/Past/databasefa13/notes/ch07-inclassex.pdf 我知道我将在查询中列出以下部分 其中 StudentName = 'Altvater' 和 其中学期 = ‘I-2008’

尝试以下 SQL:

SELECT COURSENAME
FROM STUDENT S
INNER JOIN REGISTRATION R
ON S.STUDENTID=R.STUDENTID
INNER JOIN SECTION SE
ON R.SECTOINNO=SE.SECTOINNO
AND R.SEMESTER=SE.SEMESTER
INNER JOIN COURSE C
ON SE.COURSEID=C.COURSEID
WHERE S.STUDENTID=54907/* Altvater */
AND R.SEMESTER='I-2008'

你只需要了解表格的基本设计就可以编写SQL。 SQL 是非常简单的语言。如果您对此查询有任何疑问,请告诉我。

列名在整个模式中是一致的,允许自然连接:

SELECT DISTINCT CourseName
  FROM STUDENT
       NATURAL JOIN REGISTRATION
       NATURAL JOIN SECTION
       NATURAL JOIN COURSE
 WHERE StudentName = 'Altvater'
       AND Semester = 'I-2008';