KKKKK.

Analise o select.
Está mencionado apenas uma única tabela de times, apenas duas vezes com
alias diferente.

tende executar pra vc ver.



Em 2 de dezembro de 2010 13:56, Diego Feijó <[email protected]> escreveu:

> Clayton, não são 2 tabelas de times é uma tabela de times e 1 tabela
> de jogos, porém a tabela de jogos tem 2 ligações com a tabela de
> times.
>
> Conforme primeiro post.
>
> Tenho 2 tabelas Times e Jogos. Na tabela de times tenho os seguintes
> fields TIMES(id_time,nome). Na tabela de jogos tenho JOGOS(id_jogo,
> idtime1, idtime2, gols_time1, gols_time2).
>
>
> On 2 dez, 13:44, Clayton <[email protected]> wrote:
> > Correção:
> >
> > SELECT
> > ROOT.JOGOS.GOLS_TIME1,
> > ROOT.JOGOS.GOLTS_TIME2,
> > time_1.NOME AS TIME1,
> > time_2.NOME AS TIME2,
> > FROM
> > ROOT.JOGOS
> > INNER JOIN ROOT.TIMES AS time_1 ON (time_1.ID_TIMES =
> ROOT.JOGOS.ID_TIME1)
> > INNER JOIN ROOT.TIMES AS time_2 ON (time_2.ID_TIMES =
> ROOT.JOGOS.ID_TIME2)
> >
> > Em 2 de dezembro de 2010 13:42, Clayton <[email protected]
> >escreveu:
> >
> >
> >
> > > Diego,
> >
> > > O select abaixo funcionou perfeitamente aqui no oracle 10g.
> >
> > >   SELECT
> > > ROOT.JOGOS.GOLS_TIME1,
> > > ROOT.JOGOS.GOLTS_TIME2,
> > > time_1.NOME AS TIME1,
> > > time_2.NOME AS TIME2,
> > > FROM
> > > ROOT.JOGOS
> > > INNER JOIN ROOT.TIMES1 AS time_1 ON (time_1.ID_TIMES =
> ROOT.JOGOS.ID_TIME1)
> > > INNER JOIN ROOT.TIMES2 AS time_2 ON (time_2.ID_TIMES =
> ROOT.JOGOS.ID_TIME2)
> >
> > > Em 2 de dezembro de 2010 13:30, Diego Feijó <[email protected]>
> escreveu:
> >
> > > Bruno não são 2 tabelas de times como você colocou times1 e times2 é
> > >> uma tabela chamada times. Mesmo alterando na segunda para "as time2" o
> > >> erro persiste.
> >
> > >> Parece ser simples mas é bem chatinho de resolver, como falei a única
> > >> solução que encontrei é com sub-select.
> >
> > >> On 2 dez, 13:26, Bruno Soares <[email protected]> wrote:
> > >> > ROOT.TIMES1.NOME AS TIME1,
> >
> > >> > > ROOT.TIMES2.NOME AS TIME1,
> >
> > >> > ai está o erro
> >
> > >> > Coluna com o mesmo nome
> >
> > >> > 2010/12/2 Diego Feijó <[email protected]>
> >
> > >> > > Clayto, dessa forma já tentei e o oracle retorna um erro.
> ORA-00918:
> > >> > > coluna definida de maneira ambígua
> >
> > >> > > On 2 dez, 13:08, Clayton <[email protected]> wrote:
> > >> > > > SELECT
> > >> > > >  ROOT.JOGOS.GOLS_TIME1,
> > >> > > >  ROOT.JOGOS.GOLTS_TIME2,
> > >> > > >  ROOT.TIMES1.NOME AS TIME1,
> > >> > > > ROOT.TIMES2.NOME AS TIME1,
> > >> > > > FROM
> > >> > > >  ROOT.JOGOS
> > >> > > >  INNER JOIN ROOT.TIMES1 ON (ROOT.TIMES1.ID_TIMES =
> > >> ROOT.JOGOS.ID_TIME1)
> > >> > > > INNER JOIN ROOT.TIMES2 ON (ROOT.TIMES2.ID_TIMES =
> > >> ROOT.JOGOS.ID_TIME2)
> >
> > >> > > > Em 2 de dezembro de 2010 11:29, bruno bg <[email protected]>
> > >> escreveu:
> >
> > >> > > > > apesar dessa lista não ser de SQL, vc poderia colocar
> OFF-TOPIC.
> >
> > >> > > > > então.
> > >> > > > > no inner join vc pode fazer dois INNER JOIN com as tabelas de
> TIME
> > >> > > > > e no final fazer um GROUP BY.
> >
> > >> > > > > abraço
> > >> > > > > --
> > >> > > > > ****************************************************
> > >> > > > >www.brunobg.com
> > >> > > > > [email protected]  (MSN & Skype)
> > >> > > > > blogflex.brunobg.com
> > >> > > > > @brunogrohs
> > >> > > > > (21) 9913-2397
> >
> > >> > > > > Em 2 de dezembro de 2010 09:04, Diego Feijó <[email protected]
> >
> > >> > > escreveu:
> >
> > >> > > > > Bom dia Pessoal,
> > >> > > > >> ontem realizei minha prova de grau2 sobre banco de dados,
> porém
> > >> tinha
> > >> > > > >> uma questão que está me deixando encucado, vou descrever ela
> aqui
> > >> e
> > >> > > > >> gostaria de ver quais as soluções que vocês dariam.
> >
> > >> > > > >> Vamos lá.
> >
> > >> > > > >> Tenho 2 tabelas Times e Jogos. Na tabela de times tenho os
> > >> seguintes
> > >> > > > >> fields TIMES(id_time,nome). Na tabela de jogos tenho
> > >> JOGOS(id_jogo,
> > >> > > > >> idtime1, idtime2, gols_time1, gols_time2).
> >
> > >> > > > >> Na tabela de jogos tenho 2 relacionamentos para a tabela de
> > >> times. Na
> > >> > > > >> prova utilizei um sub-select para fazer o segundo
> relacionamento,
> > >> > > > >> conforme abaixo. Neste caso ele me traz 1 registro com os 2
> times
> > >> e os
> > >> > > > >> gols de cada time, tudo certinho.
> >
> > >> > > > >> SELECT
> > >> > > > >>  ROOT.JOGOS.GOLS_TIME1,
> > >> > > > >>  ROOT.JOGOS.GOLTS_TIME2,
> > >> > > > >>  ROOT.TIMES.NOME AS TIME1,
> > >> > > > >>  (SELECT ROOT.TIMES.NOME FROM JOGOS INNER JOIN ROOT.TIMES ON
> > >> > > > >> (ROOT.TIMES.ID_TIMES = JOGOS.ID_TIME2)) AS TIME2
> > >> > > > >> FROM
> > >> > > > >>  ROOT.JOGOS
> > >> > > > >>  INNER JOIN ROOT.TIMES ON (ROOT.TIMES.ID_TIMES =
> > >> ROOT.JOGOS.ID_TIME1)
> >
> > >> > > > >> Porém na hora de entregar a prova ao professor ele me disse
> que
> > >> não
> > >> > > > >> era necessário utilizar o sub-select, somente com inner join
> > >> > > > >> funcionaria.
> > >> > > > >> Cheguei agora no trampo e fiz o teste, somente com inner join
> > >> como ele
> > >> > > > >> falou, porém me traz 2 registros com os 2 times mas com os
> gols
> > >> > > > >> duplicados, ficando errado conforme enunciado da prova.
> >
> > >> > > > >> Pergunto a vocês teria outra forma de fazer essa questão?
> >
> > >> > > > >> Obrigado desde já
> > >> > > > >> Diego Feijó.
> >
> > >> > > > >> --
> > >> > > > >> Você recebeu esta mensagem porque está inscrito na lista
> > >> "flexdev"
> > >> > > > >> Para enviar uma mensagem, envie um e-mail para
> > >> > > [email protected]
> > >> > > > >> Para sair da lista, envie um email em branco para
> > >> > > > >> [email protected]
> > >> > > > >> Mais opções estão disponíveis emhttp://
> > >> > > groups.google.com/group/flexdev
> >
> > >> > > > > --
> > >> > > > > Você recebeu esta mensagem porque está inscrito na lista
> "flexdev"
> > >> > > > > Para enviar uma mensagem, envie um e-mail para
> > >> > > [email protected]
> > >> > > > > Para sair da lista, envie um email em branco para
> > >> > > > > [email protected]
> > >> > > > > Mais opções estão disponíveis emhttp://
> > >> groups.google.com/group/flexdev
> >
> > >> > > > --
> > >> > > > Clayton Marques Pereira
> >
> > >> > > --
> > >> > > Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> > >> > > Para enviar uma mensagem, envie um e-mail para
> > >> [email protected]
> > >> > > Para sair da lista, envie um email em branco para
> > >> > > [email protected]
> > >> > > Mais opções estão disponíveis emhttp://
> > >> groups.google.com/group/flexdev
> >
> > >> > --
> > >> > Bruno Soareshttp://www.brunosoares.com
> >
> > >> --
> > >> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> > >> Para enviar uma mensagem, envie um e-mail para
> [email protected]
> > >> Para sair da lista, envie um email em branco para
> > >> [email protected]
> > >> Mais opções estão disponíveis emhttp://
> groups.google.com/group/flexdev
> >
> > > --
> > > Clayton Marques Pereira
> >
> > --
> > Clayton Marques Pereira
>
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para [email protected]
> Para sair da lista, envie um email em branco para
> [email protected]
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>



-- 
Clayton Marques Pereira

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a