¿Por qué Oracle 10g no se queja de la ambigüedad de la columna?
Estoy usando Oracle 10g (XE 10.2.0.1.0) y encuentro un comportamiento que no entiendo:
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
;
El problema es que creo que Oracle debería haberse quejado de la ambigüedad dedepartment_id
en la cláusula where, ya que es una columna tanto en la tablaemployees
ydepartments
. El hecho está en Oracle 10g, no lo hace, y el resultado muestra que interpreta eldepartment_id
como el dedepartments
. Sin embargo, si comento la segunda declaración de unión (cuarta línea arriba), Oracle se queja "ORA-00918: columna ambiguamente definida" como se esperaba.
Entonces, ¿alguien puede ayudar a explicar cómo se define la ambigüedad en Oracle 10g? ¿O tal vez esto es un error en 10 g?
BTW: las tablas se definen en el esquema de recursos humanos predeterminado incluido en Oracle 10g.
Update: Acabo de encontrar una publicación relacionada: ¿Por qué Oracle SQL resuelve misteriosamente la ambigüedad en una combinación y no en otras?