Junção de uma tabela com ela própria |
É 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.
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 |
Realizado por Turtle Learning ®. Última alteração em 2011-02-26