Que tal assim:
SELECT distinct on (p.pessoa_id) p.pessoa_id,
p.nome,
f.fone
FROM pessoas p,
fones_pessoas
WHERE
p.pessoa_id=f.pessoa_id;
abraços
Fábio Henrique Gibon
----- Original Message -----
From: "Marcone" <[email protected]>
To: "Comunidade PostgreSQL Brasileira" <[email protected]>
Sent: Thursday, April 28, 2011 2:02 PM
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