[firebase-br] SQL/Consulta complexa - Firebird 2.1
Alysson Azevedo
agalysson em gmail.com
Ter Mar 9 13:51:51 -03 2010
Eu to sem tempo de fazer a sql de exemplo para vc, mas experimenta
SELECT
> INSTRUTORES.ID_INSTRUTOR,
> INSTRUTORES.INSTRUTOR,
> EMAILS.EMAIL,
> TELEFONES.TELEFONE
> FROM TELEFONES
> LEFT OUTER JOIN INSTRUTORES ON (TELEFONES.ID_INSTRUTOR =
> INSTRUTORES.ID_INSTRUTOR)
> LEFT OUTER JOIN EMAILS ON (INSTRUTORES.ID_INSTRUTOR =
> EMAILS.ID_INSTRUTOR)
>
nem testei se o resultado será oq vc deseja, mas sei q left outer join
existe justamente para esse proposito...
--
Alysson Gonçalves de Azevedo
(11) 8491-7730
<.>_( ò.ó )_<.>
\\ ^__^
\\ (oo)\_______
\(__)\ )\/
||`~~~~~´||
_||' _||
Em 9 de março de 2010 12:12, Eduardo Belo <belo em elogica.com.br> escreveu:
> 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 retornar uma consulta assim ?
>
> Ou modelagem esta errada?
>
> Eu preciso de tabelas idependentes de e-mail e telefone 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.
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
Mais detalhes sobre a lista de discussão lista