Ir para conteúdo
Fórum Script Brasil
  • 0

Retornar resultado de um select, tudo em uma única linha


Ed Hector

Pergunta

Prezados amigos

Bom dia

Estou utilizando um select com JOIN que está me retornando dados de várias tabelas, sendo que destas tabelas uma possuí vários registros (linhas) com o mesmo ID, o que acarreta no retorno de mais de uma linha.

Eu gostaria de saber se é possível retornar em uma única linha (acrescentando as colunas) dos campos diferentes?

Ex:
pessoa
id   |    nome    |   
1    |    JOÃO    |
2    |   MARIA   | 
3    |   JOSÉ     |  

documentos
id   |    id_pessoa   |   rg   |  cpf
1    |          1         | 2323 | 0909
2    |          2         | 3434 | 9898
3    |          3         | 5656 | 7878

fotos
id   |   id_pessoa   |   foto
1    |        1          |   123456.jpg
2    |        1          |   234234.jpg
3    |        1          |   342423.jpg
4    |        2          |   123456.jpg
5    |        3          |   234234.jpg
6    |        3          |   342423.jpg

O SELECT precisa retornar tudo em uma única linha:
Lembrando que podem haver mais fotos....

ID       NOME          RG       CPF          FOTO1            FOTO2            FOTO3  
1    |    JOÃO    |   2323   | 0909  |  123456.jpg   |   234234.jpg   | 342423.jpg

Podeira ser assim também; separdo por (;):

ID       NOME          RG       CPF                            FOTO
1    |    JOÃO    |   2323   | 0909  |  123456.jpg; 234234.jpg; 342423.jpg

Desde já agradeço o apoio da comunidade!!!!

Grande abraço!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Eu gostaria de saber se é possível retornar em uma única linha (acrescentando as colunas) dos campos diferentes?
Sim. Mas o esforço é muito grande. Não vale a pena. É mais fácil através de linguagem de programação.

Link para o comentário
Compartilhar em outros sites

  • 0

Tente assim:

select
   p.id, p.nome, d.rg, d.cpf, group_concat(f.foto separator '; ')
from pessoa p
inner join documentos d on p.id = d.id_pessoa
inner join fotos f on p.id = f.id_pessoa
group by p.id, p.nome, d.rg, d.cpf

http://dev.mysql.com/doc/refman/5.1/en/gro...on_group-concat

Veja que o group_concat retorna um tamanho máximo de 1024 por default truncando o que passar disso.

http://dev.mysql.com/doc/refman/5.1/en/ser..._concat_max_len

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...