Ir al contenido principal

Nonequijoins


Nonequijoins hace coincidir valores de columnas de tablas diferentes basada en una expresión desigualdad. El valor de la columna join  en cada fila en la tabla Source es comparado a los valores correspondientes en la tabla Target. Una coincidencia es encontrada si la expresión utilizada  en el Join, basada en una desigualdad es evaluada a verdadero.
Un Nonequijoins es especificado utilizando la sintaxis JOIN … ON, pero la condición JOIN contiene una desigualdad en lugar de una igualdad.
La sintaxis para la clausula Nonequijoins es la siguiente:

SELECT table1.column, table2.column
FROM table1
[ JOIN table2 ON (table1.column_name < table2.column_name) ] |
[ JOIN table2 ON (table1.column_name > table2.column_name) ] |
[ JOIN table2 ON (table1.column_name <= table2.column_name) ] |
[ JOIN table2 ON (table1.column_name >= table2.column_name) ] |
[ JOIN table2 ON (table1.column_name BETWEEB table2.col1 AND table2.col2) ] |

-- NONEQUIJOINS
SELECT e.employee_id, e.first_name, e.last_name, e.salary, j.job_title, j.min_salary
FROM   employees e
       JOIN jobs j ON (e.job_id > j.job_id)
ORDER BY salary DESC;

SELECT e.employee_id, e.first_name, e.last_name, e.salary * 2 salary, j.max_salary
FROM   employees e
       JOIN jobs j ON (e.salary * 2 < j.max_salary)
WHERE  e.salary > 5000; 

-- NONEQUIJOINS
SELECT e.first_name, e.salary, e2.first_name, e2.salary
FROM   employees e
       JOIN employees e2 ON (e.salary < e2.salary);

Comentarios