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

时间:2016-11-16 02:04:12

标签: sql oracle join oracle-sqldeveloper

我坚持提出一个问题“列出学生Altvater在I-2008学期学习的课程名称”如果有人能引导我走向正确的方向我会很感激。我假设我会使用某种联接。请参考此图http://www.csc.villanova.edu/~mdamian/Past/databasefa13/notes/ch07-inclassex.pdf 我知道我会在查询中的下面部分 StudentName ='Altvater'和 学期='I-2008'

2 个答案:

答案 0 :(得分:1)

尝试以下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语言非常简单。如果您对此查询有任何疑问,请与我们联系。

答案 1 :(得分:1)

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

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