Consulta SQL com Múltiplas Chaves Estrangeiras

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

O seu endereço de email não será publicado