martes, 8 de noviembre de 2016

NON EQUI JOIN


Recuperación de Registros con Uniones No Igualitarias

SELECT e.last_name, e.salary, j.grade_level
   FROM   employees e JOIN job_grades j
        ON     e.salary
BETWEEN j.lowest_sal AND j.highest_sal;


Uniones No Igualitarias (continuación) 

El ejemplo de la diapositiva crea una unión no igualitaria para evaluar el grado del salario de un empleado. El salario debe estar entre cualquier par de los rangos de salario bajo y alto.

Observe que todos los empleados aparecen exactamente una vez al ejecutarse esta consulta. No se repite ningún empleado en la lista. Hay dos motivos:

Ninguna de las filas de la tabla de grados de trabajo contiene grados que se solapen. Es decir, el valor del salario para un empleado sólo puede quedar entre los valores de salario bajo y salario alto de una de las filas de la tabla de grados de salarios.

Los salarios de todos los empleados quedan dentro de los límites que proporciona la tabla de grados de trabajo. Es decir, ningún empleado gana menos del valor más bajo de la columna LOWEST_SAL ni más del valor más alto de la columna HIGHEST_SAL.

Nota: Se pueden utilizar otras condiciones (como <= y >=), pero BETWEEN es la más sencilla. Recuerde especificar el valor bajo en primer lugar y el alto al final cuando utilice BETWEEN.

Se han especificado los alias de tabla en el ejemplo de la diapositiva por motivos de rendimiento, no por posibles ambigüedades.

Devolución de Registros sin Correspondencias Directas con Uniones Externas 

Si una fila no satisface una condición de unión, no aparecerá en el resultado de la consulta. Por ejemplo, en la condición de unión igualitaria de las tablas EMPLOYEES y DEPARTMENTS, el identificador de departamento 190 no aparece porque no hay empleados con ese identificador de departamento registrado en la tabla EMPLOYEES. En lugar de ver 20 empleados en el juego de resultados, sólo verá 19.

Para devolver el registro de departamento que no tiene empleados, puede utilizar una unión externa.

Share:

0 comentarios:

Publicar un comentario

Archivo

Cual es el tema de mayor interes para ti?