Databases
T01-009-02 Composiciones internas con JOIN
Enunciado
NATURAL JOINhay que usarlo con mucho cuidado, ya que, en ocasiones, puede devolvernos resultados inesperados. Por ejemplo, si quisiéramos relacionar, en una consulta conNATURAL JOIN, las tablas de empleados y departamentos, el servidor encontraría dos atributos con el mismo nombre en cada una de las tablas (DEPARTMENT_IDyMANAGER_ID) ¿Cuál elegiría para relacionar ambas tablas?
JOIN USINGEsta cláusula permite establecer relaciones indicando qué campo o campos comunes se quieren utilizar para ello.
Ejemplo
En la siguiente consulta se muestran los empleados del departamento con nombre 'IT', indicando que se debe utilizar el atributo
DEPARTMENT_IDpara relacionar los registros de ambas tablas. Es decir, los empleados que, en el atributoDEPARTMENT_IDtienen el mismo valor que el registro de departamentos que tiene por nombre 'IT'?
SELECT FIRST_NAME, LAST_NAME, DEPARTMENT_NAME
FROM HR.employees JOIN HR.departments USING(DEPARTMENT_ID)
WHERE DEPARTMENT_NAME = 'IT'
ORDER BY LAST_NAMEEjercicio
Muestra el nombre, apellidos y tiempo en el que se han registrado cambios de trabajo (job_history) en el departamento 50. Utiliza para ello el atributo EMPLOYEE_ID, que está presente en ambas tablas.
Ordena el resultado alfabéticamente por apellidos.
Tipo
Solución
SELECT FIRST_NAME, LAST_NAME, START_DATE, END_DATE
FROM HR.employees JOIN HR.job_history USING(EMPLOYEE_ID)
WHERE job_history.DEPARTMENT_ID = 50
ORDER BY LAST_NAME
Prueba
LibrerÃas (Onfly databases)

