Natural join oracle

Tengo una duda respecto a la clausula NATURAL JOIN
al realizar la siguiente consuta de dos formas distintas me arroja resultados diferentes y no comprendo por que
aises que tengan departamentos(de una empresa) asociados a ellos, es necesario relacionar la tabla countries con locations sy luego estás dos con la tabla departamentos ya que no hay una relacion directa entre la tabla countries y departments
SELECT country_id,country_name
FROM countries
NATURAL JOIN locations
NATURAL JOIN departments;
Esta consulta me arroja 621 registros
Pero al hacerla de la siguiente forma
SELECT  c.country_id, c.country_name
FROM   countries c join locations l
on  (c.country_id=l.country_id)
JOIN departments d
on (d.location_id=l.location_id)
SELECT  c.country_id, c.country_nameFROM   countries c join locations lon  (c.country_id=l.country_id)JOIN departments don (d.location_id=l.location_id)
Arroja 27 registros y muy diferentes a los de la primer consulta
a que se puede deber esta diferencia, me confunde la diferencia entre hacer una consulta con natural join y utilizar especificando a través de que columna se hace la consulta

1 Respuesta

Respuesta
1
Si las consultas son tal cual las pones el que pongas NATURAL JOIN no evita que tengas que especificar el on, es decir, los campos que relacionan una tabla con la otra. El NATURAL JOIN afecta al resultado que se muestra después de hacer la consulta uniendo columnas con el mismo nombre no a la ejecución de la propia consulta
Te agradezco la aclaración, de igual forma te comento que el error se debía a un error relacional en dos de las tres tablas... pero tu respuesta es muy valiosa gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas