martes, 8 de noviembre de 2016

JOIN ON


La condición de unión para la unión natural es básicamente una unión igualitaria de todas las columnas con el mismo nombre.

Utilice la cláusula ON para especificar condiciones arbitrarias o para especificar las columnas que se unirán.

La condición de unión se separa de otras condiciones de búsqueda.

La cláusula ON facilita la comprensión del código.

Utilice la cláusula ON para especificar una condición de unión. Esto le permite especificar condiciones de unión aparte de cualquier condición de búsqueda o de filtro en la cláusula WHERE.

SELECT e.employee_id, e.last_name, e.department_id, d.department_id, d.location_id 
    FROM  employees e JOIN departments d 
         ON  (e.department_id = d.department_id);



Creación de Uniones con la Cláusula ON 
En este ejemplo, las columnas DEPARTMENT_ID de las tablas EMPLOYEES y DEPARTMENTS se unen mediante la cláusula ON. Siempre que un identificador de departamento de la tabla EMPLOYEES sea igual a un identificador de departamento de la tabla DEPARTMENTS, se devuelve la fila. 

También puede utilizar la cláusula ON para unir columnas con nombres diferentes. 



Unión de una Tabla a Sí Misma 
A veces, tendrá que unir una tabla a sí misma. Para encontrar el nombre del supervisor de cada empleado, debe unir la tabla EMPLOYEES a sí misma o realizar una autounión. Por ejemplo, para encontrar el nombre del supervisor de Lorentz, debe:

Buscar Lorentz en la tabla EMPLOYEES en la columna LAST_NAME. 
Buscar el número de supervisor para Lorentz en la columna MANAGER_ID. El número del supervisor de Lorentz es 103.

Buscar el nombre del supervisor con el valor EMPLOYEE_ID 103 en la columna LAST_NAME. El número de empleado de Hunold es 103, por lo que Hunold es el supervisor de Lorentz.

En este proceso, se consulta la tabla dos veces. La primera vez, se consulta la tabla es para buscar Lorentz en la columna LAST_NAME y el valor MANAGER_ID de 103. La segunda vez, se consulta la columna EMPLOYEE_ID para buscar 103 y la columna LAST_NAME para buscar Hunold. 

SELECT e.last_name emp, m.last_name mgr 
   FROM employees e JOIN employees m 
        ON  (e.manager_id = m.employee_id



Unión de una Tabla a Sí Misma (continuación) 
La cláusula ON también se puede utilizar para unir columnas con nombres diferentes, dentro de la misma tabla o en una tabla diferente.
El ejemplo que se muestra en una autounión de la tabla EMPLOYEES, basada en las columnas EMPLOYEE_ID y MANAGER_ID. 

Aplicación de Condiciones Adicionales a una Unión 

Puede aplicar condiciones adicionales a la unión.

El ejemplo realiza una unión de las tablas EMPLOYEES y DEPARTMENTS y, además, muestra sólo a los empleados con el identificador de supervisor 149. Para agregar condiciones adicionales a la cláusula ON, puede agregar cláusulas AND. De forma alternativa, puede utilizar una cláusula WHERE para aplicar condiciones adicionales.
SELECT e.employee_id, e.last_name, e.department_id,d.department_id, d.location_id 
  FROM  employees e JOIN departments d 
       ON   (e.department_id = d.department_id) 
WHERE e.manager_id = 149; 


Share:

0 comentarios:

Publicar un comentario

Archivo

Cual es el tema de mayor interes para ti?