Não equi-junção entre tabelas |
Sempre que o relacionamento entre duas tabelas é obtido por um operador que não seja = estamos numa NÃO-EQUI-JUNÇÃO. Para determinar o nível de salarial de um empregado (GRADE) temos que encontrar o intervalo de valores em que o salário do empregado se enquadra, estando as categorias armazenadas na tabela SALGRADE. O relacionamento entre as tabelas EMP e SALGRADE é uma não-equi-junção, pois nenhuma coluna de EMP corresponde directamente a uma coluna de SALGRADE sendo a relação obtida utilizando o operador BETWEEN.
Sintaxe antiga | SQL99 |
---|---|
select E.ename, E.sal, S.grade from emp E, salgrade S where E.sal between S.losal and S.hisal; |
select E.ename, E.sal, S.grade from emp E inner join salgrade S on (E.sal between S.losal and S.hisal); |
ENAME SAL GRADE ---------- ---------------------- ---------------------- SMITH 800 1 JAMES 950 1 ADAMS 1100 1 WARD 1250 2 MARTIN 1250 2 MILLER 1300 2 TURNER 1500 3 ALLEN 1600 3 CLARK 2450 4 BLAKE 2850 4 JONES 2975 4 SCOTT 3000 4 FORD 3000 4 KING 5000 5 14 rows selected |
Também poderiamos ter utilizado os operadores >= e <=.
Realizado por Turtle Learning ®. Última alteração em 2011-02-26