[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