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
