为什么Oracle 10g不会抱怨列歧义?
发布时间:2020-12-12 13:50:29 所属栏目:百科 来源:网络整理
导读:我正在使用Oracle 10g(XE 10.2.0.1.0),并找到一个我不理解的行为: select * from employees manager join employees worker on MANAGER.EMPLOYEE_ID = WORKER.MANAGER_ID join departments on DEPARTMENTS.manager_id = 108where department_id = 100; 问题
我正在使用Oracle 10g(XE 10.2.0.1.0),并找到一个我不理解的行为:
select * from employees manager join employees worker on MANAGER.EMPLOYEE_ID = WORKER.MANAGER_ID join departments on DEPARTMENTS.manager_id = 108 where department_id = 100 ; 问题是我认为Oracle应该抱怨where子句中department_id的含糊不清,因为它是表员工和部门中的一个列.事实是在Oracle 10g中,事实并非如此,结果表明它将department_id解释为部门中的部门.但是,如果我注释掉第二个连接语句(上面第4行),Oracle会按预期抱怨“ORA-00918:列模糊定义”. 那么,有人可以帮助解释如何在Oracle 10g中定义歧义吗?或许这是一个10g的错误? BTW:这些表是在Oracle 10g中捆绑的默认HR模式中定义的. 更新:刚刚找到相关帖子: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |