【问题标题】:ORA-00918: column ambiguously defined for CourseIDORA-00918: 为 CourseID 定义不明确的列
【发布时间】:2016-07-23 21:08:02
【问题描述】:
select 
    grade.sectionid,
    grade.studentid,
    course.courseid
FROM grade, course, section
    INNER JOIN grade
            ON grade.sectionid = section.sectionid
    INNER JOIN course
            ON course.courseid = section.courseid;

不断出现错误: ORA-00918: 列定义不明确

错误在 course.courseid 行

【问题讨论】:

    标签: oracle


    【解决方案1】:
    SELECT
        grade.sectionid,
        grade.studentid,
        course.courseid
    FROM section
        INNER JOIN grade
                ON grade.sectionid = section.sectionid
        INNER JOIN course
                ON course.courseid = section.courseid;
    

    【讨论】:

      【解决方案2】:

      您在 FROM 中定义了两次课程,因此它不知道从哪一个中提取信息。在 FROM 中为您的表提供一些别名,以便您可以具体说明事物的来源,或者如果您不想包含两次引用,则删除其中一个引用。

      ...
      FROM 年级,课程,部分
      ...
      INNER JOIN 课程
      ...

      【讨论】:

      • 啊,我明白了。谢谢你的解释!现在解决了
      • “删除引用”是对的,在提出的查询中没有任何内容表明 OP 意味着两次包含两个表。
      猜你喜欢
      • 2014-08-13
      • 1970-01-01
      • 1970-01-01
      • 2016-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多