0

我在这里使用两张桌子。

在此处输入图像描述

采用这些表格并显示课程编号、课程名称、先决条件和先决条件名称的想法。

但是,如您所见,我必须处理歧义。

到目前为止,我运行了这个查询

SELECT c.course_name, p.course_number, course_name AS "prereq_course",prereq
FROM rearp.course  c, rearp.prereq  p
WHERE c.course_number = p.course_number;

并得到了这个...

在此处输入图像描述

看起来一切都很好,只是您可能会注意到先决条件的课程名称只是课程的副本。

我将如何解决这个问题?

4

1 回答 1

3

你想查找先修课程并获得它的名字。

您需要再次加入课程表:

SELECT c.course_name, p.course_number, c2.course_name AS "prereq_course",p.prereq
FROM
   rearp.course  c
      inner join
   rearp.prereq  p
      ON c.course_number = p.course_number
      inner join
   rearp.course c2
      on
         p.prereq = c2.course_number

(我也切换到 ansi join 语法,而不是,风格)

于 2012-11-16T08:42:52.247 回答