[firebase-br] SQL/Consulta complexa - Firebird 2.1
Eduardo Belo
beloelogica em gmail.com
Ter Mar 9 12:17:29 -03 2010
Amigos,
Tenho as seguintes tabelas:
TABLE INSTRUTORES
ID_INSTRUTOR INTEGER NOT NULL,
INSTRUTOR VARCHAR(80)
TABLE EMAILS
ID_EMAIL INTEGER NOT NULL,
ID_INSTRUTOR INTEGER NOT NULL,
EMAIL VARCHAR(80)
TABLE TELEFONES
ID_TELEFONE INTEGER NOT NULL,
ID_INSTRUTOR INTEGER NOT NULL,
TELEFONE VARCHAR(14)
CHAVE RELACIONAMENTO = ID_INSTRUTOR
****************************************************
Efetuando o select abaixo:
SELECT
INSTRUTORES.ID_INSTRUTOR,
INSTRUTORES.INSTRUTOR,
EMAILS.EMAIL,
TELEFONES.TELEFONE
FROM TELEFONES
INNER JOIN INSTRUTORES ON (TELEFONES.ID_INSTRUTOR = INSTRUTORES.ID_INSTRUTOR)
INNER JOIN EMAILS ON (INSTRUTORES.ID_INSTRUTOR = EMAILS.ID_INSTRUTOR)
Retorno consulta:
INSTRUTOR EMAIL TELEFONE
--------------------------------------------------
MARIA maria em hotmail.com 8605-9395
JOSE jose em yahoo.com.br 3445-6181
JOSE jose@@hotmail.com 9998-8294
JOAO joao em gmail.com 9133-3824
JOAO joao em gmail.com 3181-8037
JOAO joao em gmail.com 3426-9322
JOAO joao em yahoo.com.br 9133-3824
JOAO joao em yahoo.com.br 3181-8037
JOAO joao em yahoo.com.br 3426-9322
Observem que no caso de JOAO ele tem 2 email e 3 telefones e
retorna duplicado nos telefones. Eu preciso que nesse caso ele
retorne 2 emails e 3 telefones:
JOAO joao em gmail.com 9133-3824
JOAO joao em yahoo.com.br 3181-8037
JOAO 3426-9322
Tem como fazer um SELECT para retornar assim ?
Ou existe algum erro na minha modelagem ?
Eu preciso de tabelas idependentes de e-mail e teofne uma vez
que o instrutor pode ter vários telefones e emails.
Qual a solução para este caso?
Agradeço a todos que ajudarem.
Mais detalhes sobre a lista de discussão lista