SQL模糊列

时间:2012-11-16 08:38:45

标签: sql

我在这里使用两张桌子。

enter image description here

获取这些表并显示课程编号,课程名称,先决条件和先决条件名称的想法。

然而,你可以看到我必须处理歧义。

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

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;

得到了这个......

enter image description here

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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分: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语法,而不是,样式)