Obrigado Leandro
Já achei a resposta, faltava apenas o alias do campo que era feito o max()
ficou assim:
SELECT
p.nome,
f.fone,
e.email
FROM pessoas p
Left JOIN ( select pessoa_id, max(fone) as fone from fones_pessoas group by
pessoa_id) f
ON(p.pessoa_id=f.pessoa_id)
LEFT JOIN ( select pessoa_id, max(email) as email from Emails group by
pessoa_id) e
ON(p.pessoa_id=e.pessoa_id)
WHERE empresa_id = 538;
> Date: Thu, 28 Apr 2011 14:02:16 -0300
> From: [email protected]
> To: [email protected]
> Subject: Re: [pgbr-geral] Select para retornar ultimo valor de cada ID
>
> Em 28 de abril de 2011 13:37, Jefferson Dias <[email protected]>
> escreveu:
> > Boa tarde Leandro,
>
> ....
>
> >
> > SELECT
> > p.pessoa_id,
> > p.nome,
> > fone
> > FROM pessoas p
> > LEFT JOIN ( select pessoa_id, max(fone), from fones_pessoas group by
> > pessoa_id) f
> > ON(p.pessoa_id=f.pessoa_id);
>
> ........
>
> >
>
> Não sei se entendi bem sua dúvida, mas acho que algo mais simples
> resolveria seu problema:
>
> select pes.*, (select numero from telefone where id_pessoa = pes.id
> limit 1) telefone
> from pessoa pes;
>
> Neste caso, dependendo do tamanho de sua tabela essa consulta pode ser
> um pouco lenta, mas se você filtrar a pessoa por algum campo com
> índice você terá uma desempenho melhor.
>
> --
> Marcone Peres - DBA
> http://www.linkedin.com/in/marconeperes
> (61) 8146-0028
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral