Utilize o LEFT JOIN ...
Mas para isso deve haver alguma relação entre as tabelas...
Supondo que na table tp_pessoa exista : id_status, id_entidade,
id_registro_classe.

Ficaria assim :

SELECT p.cd_pessoa, tp.descricao,  st.cd_status, st.descricao,
te.cd_tp_entidade, te.descricao, trc.cd_tp_registro_classe FROM
tp_pessoa
LEFT JOIN status S ON S.id_status = tp.id_status
LEFT JOIN tp_entidade te ON te.id_entidade = tp.id_entidade
LEFT JOIN tp_registro_classe trc ON trc.id_registro_classe =
tp.id_registro_classe;

Dessa FORMA a uma obrigatoriedade é existir o registro na tabela tp_pessoa.
caso não exista em qualquer das outras tabelas os campos referentes a
ela veem NULL;

Att:

Thiago Risso


On 10/5/06, Leonardo Ribeiro <[EMAIL PROTECTED]> wrote:
> Senhores,
>
> supondo a seguinte consulta:
>
> select tp.cd_pessoa, tp.descricao,
> st.cd_status, st.descricao,
> te.cd_tp_entidade, te.descricao,
> trc.cd_tp_registro_classe
> from tp_pessoa tp, status st, tp_entidade te, tp_registro_classe trc;
>
> Se por acaso alguma das tabelas estiver vazia, sem nenhum registro, esse
> select
> não retorna nada..
> Há um meio de retornar pelo menos os dados das tabelas que possuem registro?
>
> atenciosamente
> Leonardo
> _______________________________________________
> Grupo de Usuários do PostgreSQL no Brasil
> Antes de perguntar consulte o manual
> http://pgdocptbr.sourceforge.net/
>
> Para editar suas opções ou sair da lista acesse a página da lista em:
> http://pgfoundry.org/mailman/listinfo/brasil-usuarios
>
>
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a