Dúvida no mysql

Enviada por mario henrique 
mario henrique
Dúvida no mysql
15 de March de 2012 às 09:37PM
Boa noite,

Estou com um problema numa consulta no mysql.
Tenho três tabelas.

pedidos={id, id_telefone_1,id_telefone_2,id_pessoa}
pessoas={id,nome}
telefones={id, cod_area,numero}

O problema é o seguinte, eu quero fazer uma consulta, na qual eu recuperarei a pessoa relacionada e seus dois telefones a partir da tabela 'pedidos'.

A query que tentei é a seguinte

SELECT ps.nome,
tel.cod_area, tel.numero,
ped.id
FROM pessoa ps, telefone tel, pedidos ped
WHERE ped.id_pessoa = ps.id
AND ped.id_telefone_cel = tel.id
AND ped.id_telefone_fix = tel.id

O problema é óbivio, a consulta não retorna nada.
Alguém poderia me ajudar com essa consulta, pois sei que tem retornar os registros únicos de pessoa e pedido e os dois telefones ao mesmo tempo.

Obrigado!
Marcos Regis
Re: Dúvida no mysql
16 de March de 2012 às 03:51AM
Sua modelagem está errada.

Telefone é que deveria estar ligado a pessoa e não o contrario

Deveria ser
pedidos={id, id_pessoa}
pessoas={id, nome}
telefones={id, id_pessoa, cod_area,numero}

A consulta deveria ser

SELECT u.campos, t.campos. p.campos
FROM pessoas u
INNER JOIN pedidos p ON u.id=p.id_pessoa
INNER JOIN telefones t ON u.id=t.id_pessoa
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.