Muito obrigado aos generosos Walter Cruz e Thiago Risso!
Abraços a todos!

Valeu!


Citando Walter Cruz <[EMAIL PROTECTED]>:

> É isso aí Thiago :)
>
> Agora, para deixar o resultado mais 'bonitinho' na tela:
>
>
> select nome, array_to_string(array(select titulo from Aluno_atividade
> aa join atividades a on aa.cod_atvidade = a.cod and aa.cod_aluno =
> al.cod),', ') as atividades
> from alunos al
>
>
> []'s
> - Walter
>
> On 9/26/06, Thiago Risso <[EMAIL PROTECTED]> wrote:
> > Tenta assim :
> > * Mas colocar os indices ai para melhorar a performance dessa query !
> >
> > select nome, array(select titulo from Aluno_atividade aa join atividades a
> > on aa.cod_atvidade = a.cod and aa.cod_aluno = al.cod)
> > from alunos al
> >
> > Att:
> >
> > Thiago Risso
> >
> >
> >
> > On 9/26/06, Kamayocks <[EMAIL PROTECTED]> wrote:
> > > Obrigado Osvaldo!
> > > Vou tentar isso e caso obtenha sucesso retornarei para a lista com a
> > solução. a
> > > fim de disponibilizá-la para todos.
> > > Valeu!
> > >
> > > Citando Osvaldo Rosario Kussama < [EMAIL PROTECTED]>:
> > >
> > > > Kamayocks escreveu:
> > > > > --Olá todos!
> > > > > --Preciso de um "help".
> > > > > --O lance é o seguinte:
> > > > > --Há uma tabela de alunos (cod integer, nome varchar(50)),
> > > > > --   uma de atividades (cod integer, titulo varchar(30))
> > > > > --   e uma associativa, Aluno_atividade (cod_aluno integer,
> > cod_atvidade
> > > > > integer)
> > > > > --   (um aluno com uma ou mais atividades / uma atividade com um
> > alunos ou
> > > > > mais).
> > > > >
> > > > > create table alunos(cod integer, nome varchar(10));
> > > > > create table atividades (cod integer, titulo varchar(20));
> > > > > create table Aluno_atividade (cod_aluno integer, cod_atvidade
> integer)
> > ;
> > > > > -- Alunos
> > > > > insert into Alunos values(1,'Joaquim');
> > > > > insert into Alunos values(2,'Maria');
> > > > > insert into Alunos values(3,'Joana');
> > > > > --Atividade
> > > > > insert into atividades values(1,'Arte Plástica');
> > > > > insert into atividades values(2,'Esporte');
> > > > > insert into atividades values(3,'Musica');
> > > > > --Aluno_Atividade
> > > > > insert into aluno_atividade values(1,1);
> > > > > insert into aluno_atividade values(1,2);
> > > > > insert into aluno_atividade values(1,3);
> > > > > insert into aluno_atividade values(2,1);
> > > > > insert into aluno_atividade values(3,2);
> > > > > insert into aluno_atividade values(3,1);
> > > > >
> > > > > --Ao selecionar os dados...
> > > > > select nome, titulo
> > > > >   from alunos al
> > > > >   join Aluno_atividade aa on aa.cod_aluno = al.cod
> > > > >   join atividades at on at.cod = aa.cod_atvidade
> > > > >
> > > > > --obtenho....
> > > > >
> > > > > --nome       titulo
> > > > > ------------ --------------------
> > > > > --Joaquim    Arte Plástica
> > > > > --Joaquim    Esporte
> > > > > --Joaquim    Musica
> > > > > --Maria      Arte Plástica
> > > > > --Joana      Esporte
> > > > > --Joana      Arte Plástica
> > > > >
> > > > > --Eu gostaria de obter os registros acima da seguinte forma (array):
> > > > >
> > > > > --nome       titulo
> > > > > ------------ --------------------
> > > > > --Joaquim    Arte Plástica, Esporte, Musica
> > > > > --Maria        Arte Plástica
> > > > > --Joana        Arte Plástica, Esporte
> > > > >
> > > > > -- É possível obter dados de uma tabela filha em uma única coluna? Se
> > > > > afirmativo, podem me passar o caminho das pedras?!
> > > > >
> > > >
> > > >
> > > > Você precisa utilizar uma função de agregação.
> > > >
> > > > Veja o exemplo array_accum em:
> > > >
> > http://www.postgresql.org/docs/8.1/interactive/xaggr.html
> > > >
> > > > []s
> > > > Osvaldo
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > _______________________________________________________
> > > > Você quer respostas para suas perguntas? Ou você sabe muito e quer
> > > > compartilhar seu conhecimento? Experimente o Yahoo! Respostas !
> > > > http://br.answers.yahoo.com/
> > > > _______________________________________________
> > > > Grupo de Usuários do PostgreSQL no Brasil
> > > > Antes de perguntar consulte o manual
> > > > http://pgdocptbr.sourceforge.net/
> > > >
> > > > Para editar suas opções ou sair da lista acesse a página da lista em:
> > > > http://pgfoundry.org/mailman/listinfo/brasil-usuarios
> > > >
> > >
> > >
> > >
> > >
> >
>
___________________________________________________________________________________
> > > Agora todas as suas ligações DDD e DDI com o 21 vêm junto com a conta do
> > seu
> > > telefone de casa ou celular.
> > > Mais comodidade e praticidade para você. Faz um 21 e aproveite!
> > >
> > > _______________________________________________
> > > Grupo de Usuários do PostgreSQL no Brasil
> > > Antes de perguntar consulte o manual
> > > http://pgdocptbr.sourceforge.net/
> > >
> > > Para editar suas opções ou sair da lista acesse a página da lista em:
> > > http://pgfoundry.org/mailman/listinfo/brasil-usuarios
> > >
> >
> >
> > _______________________________________________
> > Grupo de Usuários do PostgreSQL no Brasil
> > Antes de perguntar consulte o manual
> > http://pgdocptbr.sourceforge.net/
> >
> > Para editar suas opções ou sair da lista acesse a página da lista em:
> > http://pgfoundry.org/mailman/listinfo/brasil-usuarios
> >
> >
> _______________________________________________
> Grupo de Usuários do PostgreSQL no Brasil
> Antes de perguntar consulte o manual
> http://pgdocptbr.sourceforge.net/
>
> Para editar suas opções ou sair da lista acesse a página da lista em:
> http://pgfoundry.org/mailman/listinfo/brasil-usuarios
>



___________________________________________________________________________________
Agora todas as suas ligações DDD e DDI com o 21 vêm junto com a conta do seu
telefone de casa ou celular. 
Mais comodidade e praticidade para você. Faz um 21 e aproveite!

_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a