Esta semana me deparei com a seguinte situação: fazer uma consulta SQL em uma tabela com 3 chaves estrangeiras para a mesma chave em outra tabela. Parece complicado mas a solução é mais fácil do que se imagina.
Crie aliases para a tabela da chave estrangeira.
Exemplo:
Tabela Cliente idCliente NomeCliente CPFCliente Tabela Despacho idDespacho IdClienteRemetente (chave estrangeira idCliente em Cliente) idClienteDestinatário (chave estrangeira idCliente em Cliente) idClienteIndicacao (chave estrangeira idCliente em Cliente) ValorDespacho
Como listar o nome do cliente remetente, do cliente destinatário e do cliente que fez a indicação?
Assim:
select c1.NomeCliente, c2.NomeCliente, c3.NomeCliente from Despacho inner join Cliente as c1 on idClienteRemetente = idCliente inner join Cliente as c2 on idClienteDestinatario = idCliente inner join Cliente as c3 on idClienteIndicacao = idCliente
Deixe um comentário