Auto Relacionamento

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
  

Mensagemem Qua, 29 Nov 2006 4:45 pm

Srs . alguém teria algum exemplo de Auto Relacionamento.

Agradeço mais uma vez !!!
jctq
Localização: São Gonçalo

Att,
Julio Quintão

Mensagemem Qui, 07 Dez 2006 10:42 am

Um auto-relacionamento é um relacionamento feito com a própria tabela.
Um exemplo disso, é quando queremos agrupar coisas:
Código: Selecionar todos
EMPREGADO NOME        CHEFE
--------- ----------- -----
10        JOAO        40
20        PEDRO       40
30        CARLOS      40
40        THE BOSS


Veja a tabela acima... Todos empregados tem um chefe (o 40) que é uma das pessoas cadastradas. O 40 não tem nenhum chefe, aí o campo de auto-relacionamento fica em branco.


Para criar, pode fazer assim (usando a tabela acima):
Código: Selecionar todos
alter table EMPREGADOS
  add constraint EMPR_EMPR_FK foreign key (CHEFE)
  references EMPREGADOS (EMPREGADO);



Para consultar os auto-relacionamentos que existem, dá pra fazer assim:
Código: Selecionar todos
select a.table_name
from user_constraints a
where exists (select 1
              from user_constraints b
              where a.constraint_name=b.r_constraint_name
                and a.table_name     =b.table_name)
dr_gori
Localização: Portland, OR USA

Thomas F. G

Você já respondeu a dúvida de alguém hoje?
http://glufke.net/oracle/search.php?search_id=unanswered

Mensagemem Ter, 26 Jun 2007 11:10 am

Apesar deste tópico ser um pouco antigo, queria aproveitá-lo para tirar uma dúvida que surgiu aqui no trabalho.

Na tabela de exemplo EMPREGADOS, como ficaria a query de Select para que fosse listados todos os empregados com código, nome, código do chefe e nome do chefe?
xandesantos
Localização: Salvador-BA



Voltar para SQL

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron