0

我正在尝试加入几个表以生成具有先决条件的类的列表。一切都很好,除了我需要先决条件和原始类的类名。

到目前为止我有

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

这给了我(您已经可以看到 course_name 存在两次的问题[不知道如何处理它])

  • 课程名称(好的好的)
  • 班级(是的)
  • 再次输入课程名称(等等,这是同一个名字!)
  • 先决条件(好)

忽略格式,请注意课程名称或先决条件仅与原始课程对应,而不是先决条件。

我的问题是我无法让名称匹配。

4

1 回答 1

6

使用别名并确保始终在字段列表中包含表名:

SELECT
    c.course_name,
    c.course_number,
    p.course_name AS prereq_course_name,
    p.prereq
FROM rearp.course AS c, rearp.prereq AS p
WHERE c.course_number = p.course_number

另外,请使用有意义的表别名而不是单个字母,并尝试使用实际连接而不是隐式连接。如果您使用的是 MySQL,则连接将是交叉连接,这是低效且不必要的。

编辑:在字段列表中添加逗号...

于 2012-11-16T04:47:51.010 回答