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

(Resolvido) Associar dados numa mesma linha


gimprog

Pergunta

Prezados colegas,

Tenho duas tabelas para o meu aplicativo: uma chamada de tabela "registros" que armazena o nome, o endereço, o bairro de um usuário; tenho também uma tabela "telefones" que possui uma coluna chamada de id_cadastrado que está associada a numeração criada na coluna registro (chave primária) da tabela "registros", de forma que proporciono ao meu usuário a oportunidade de cadastrar quantos telefones ele quiser.

Minha dificuldade está sendo a de exibir os telefones numa mesma linha ou em linhas separadas - para este ultimo caso sem que eu necessite repetir o nome do cadastrado.

Melhor modelando minha situação:

Com um SELECT registros.*,telefones.telefone FROM telefones RIGHT JOIN registros ON id_cadastrado = registro; exibo os dados assim:

---------------------------------------------

- Nome - Telefone -

---------------------------------------------

- FULANO - 1111-1111 -

---------------------------------------------

- FULANO - 2222-2222 -

---------------------------------------------

- FULANO - 3333-3333 -

---------------------------------------------

- CICRANO - 8178-1511 -

---------------------------------------------

Mas gostaria que ficassem assim:

--------------------------------------------

- Nome - Telefone -

--------------------------------------------

- Fulano - 1111-1111 -

--------------------------------------------

- - 2222-2222 -

--------------------------------------------

- - 3333-3333 -

--------------------------------------------

- Cicrano - 8178-1511 -

--------------------------------------------

OU ASSIM:

---------------------------------------------------------------

- Nome - Telefone - Telefone - Telefone -

---------------------------------------------------------------

- Fulano - 1111-1111 - 2222-2222 - 3333-3333 -

---------------------------------------------------------------

- Cicrano - 81781511 - - -

---------------------------------------------------------------

Bom agradeço por alguma ajuda!!! :rolleyes:

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Use subqueries... veja o exemplo:

select idcontato, substring(nome from 1 for 10) as nome, telefone, telefone_b, telefone_c
from contato
left outer join
  (select idcontato as id_b, telefone as telefone_b
   from contato
  ) as lista_b
  on (contato.idcontato=lista_b.id_b)
left outer join
  (select idcontato as idc, telefone as telefone_c
   from contato
  ) as lista_c
  on (contato.idcontato=lista_c.idc)
limit 10;
Resultado, com algumas pessoas com um ou dois ou três telefones.
+-----------+------------+-------------+-------------+-------------+
| idcontato | nome       | telefone    | telefone_b  | telefone_c  |
+-----------+------------+-------------+-------------+-------------+
|     11612 | MARIANE DE | 21 14344901 |             |             |
|     11613 | EVANGELINA | 21 26114806 |             |             |
|     11614 | EDINELSON  | 21 36329904 |             |             |
|     11615 | CAROLINA D | 11 18145091 | 11 44203042 |             |
|     11616 | NATIRA SIL | 11 31314365 |             |             |
|     11617 | EDNAMARA O | 11 48012474 |             |             |
|     11618 | CARLOTA JO | 31 57134828 | 31 44231122 | 31 42344555 |
|     11619 | MAURO MEND | 31 14674866 | 31 31444223 | 31 34123322 |
|     11620 | JORGE DOS  | 31 42767041 |             |             |
|     11621 | EVILAZIO DE| 31 12744867 |             |             |
+-----------+------------+-------------+-------------+-------------+
10 rows in set (0.10 sec)

Link para o comentário
Compartilhar em outros sites

  • 0

Opa paulo!

Acho que talvez você não tenha percebido, mas comentei que os dados estavam em tabelas separadas. Havia um tabela para telefones, outra para celulares e outra para fax. Depois de muito testar sua dica com as tabelas separadas vi que não seria possivel implementar sua dica da maneira como eu estava criando as tabelas. Daí seu post tornou-se útil pelo fato de simplesmente colocar telefone, celular e fax numa mesma tabela. Recriei minha tabela, alterei meu aplicativo para trabalhar desta forma, e pronto! Deu certo!!!

Obrigado pela ajuda!!!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

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