Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

W.E.L.L. Serv. TI

Select no MySQL

Recommended Posts

Olá, tem muito tempo que não trabalho com o mysql e eu perdi alguns arquivos de repósitório em meu note, e preciso de uma ajudinha...

Pelo amor de Deus !!!!!

Tenho 2 tabelas com relacionamento N:M,

 

tb_cadastropessoa

 

id_pessoa, nm_pessoa, nm_maepessoa, nm_paipessoa, dt_nascimento

 

tb_telefone

 

id_telefone, cd_dddTelefone, cd_telefone, nm_operadora

 

tb_cadastropessoatelefone (objeto de resilução N:M)

 

id_pessoa_tb_cadastropessoa, id_telefone_tb_telefone

 

só que o select que eu faço...

 

select nm_pessoa, cd_telefone
from tb_cadastropessoa, tb_cadastropessoatelefone, tb_telefone
where id_pessoa_tb_cadastropessoa = id_pessoa and id_telefone_tb_telefone = id_telefone;

 

me retorna o seguinte:

 

nm_pessoa cd_telefone

roberto 22335522

roberto 991334599

juliane 30252215

 

até ai ta certinho o select como relacionamento mas eu queria que aparecesse assim:

 

Nome Telefone Telefone Telefone Telefone

roberto 22335522 991334599 null null

juliane 30252215 null null null

 

me passando a estrutura do select eu já resolvo no php. Para relatório este tipo de select é eficiente.

Por favor será que tem alguem que pode me ajudar. Por favor se puder por gentileza fazer passo a passo eu agradeço pois tem

tempo que não programo.

 

Grato

Obs.: o insert vai contar no máximo 4 telefones de cada um, então na montagem da tabela ele apresenta 4 colunas telefone.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao sai exatamente em colunas mas resolve parte da questao

 

Mysql nao tem um "unpivot".

 

 

http://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html#function_group-concat

Motta ja resolvi a questão com o Group Concat mas tem uma questão ainda alguem pode me dizer como definir o separador do concat, porque virgula ninguem merece !

Desculpem-me

Solução:

 

use cw_wellcursos;
SELECT nm_pessoa NOME, cd_dddTelefone DDD,
GROUP_CONCAT(cd_telefone) as TELEFONES
FROM tb_cadastropessoa, tb_cadastropessoatelefone, tb_telefone
WHERE id_pessoa = id_pessoa_tb_cadastropessoa
and id_telefone= id_telefone_tb_telefone
GROUP BY nm_pessoa;
Resultado:
NOME DDD TELEFONES
erick 13 991406608,34810866
julia 11 32325599

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.