SQL em Oracle > DML > Junção de tabelas > Junção Horizontal > Junção externa
Junção de uma tabela com ela própria tl_logo2.jpg

É possivel relacionar uma tabela com ela própria. Esta operação junta linhas de uma tabela com linhas da própria tabela. Para isso é necessário utilizar sinónimos para os nomes das tabelas. Estes criam uma cópia virtual da tabela, originando assim uma relação entre duas tabelas, que já foi exemplificada no ponto anterior.

relachimself.jpg

O campo EMPNO contém o número de empregado. O campo MGR contém o número de empregado que é "manager" deste empregado. É uma relação para a própria tabela. O comando abaixo permite listar todos os empregados que ganham menos que os seus "managers":


Sintaxe antiga ON USING NATURAL JOIN
SELECT 
  e.ename "Nome empregado" , 
  e.sal "Salário empregado", 
  m.ename "Nome manager", 
  m.sal "Salário manager"
FROM emp e, emp m
WHERE e.mgr=m.empno
  AND e.sal < m.sal;
SELECT 
  e.ename "Nome empregado" , 
  e.sal "Salário empregado", 
  m.ename "Nome manager", 
  m.sal "Salário manager"
FROM emp e
INNER JOIN  emp m ON (e.mgr=m.empno)
WHERE e.sal < m.sal;
Não pode ser feito porque as colunas usadas na junção não têm o mesmo nome Não pode ser feito porque as colunas usadas na junção não têm o mesmo nome

bthome.gifTopo


Realizado por Turtle Learning ®. Última alteração em 2011-02-26