Em 23/02/11, Fabiano Fernandes<[email protected]> escreveu: > Pessoal preciso de uma ajudinha ... > > tenho as seguintes tabela .... > > basperson > + personid > + name > + shortname > > > physicalperson > + personid > + location > + number > + fatherid (personid) > + motherid (personid) > > Preciso de um select que me retorna desta forma > > > Nome da Pessoa || Endereço || Nome do Pai || Nome da Mãe > > O problema está em retornar o nome do pai e da mãe, pois já fiz um LEFT JOIN > com personid das duas tabelas ... > > Fiz assim mão ele me retorna o um erro: > > SELECT basperson.name, physicalperson.location, (SELECT > basperson.nameFROM basperson WHERE basperson.personid > = physicalperson.fatherid ), (SELECT basperson.name FROM basperson > WHERE basperson.personid = physicalperson.motherid) > FROM basperson > INNER JOIN basphysicalperson ON basperson.personid = > basphysicalperson.personid > ORDER BY > basperson.name > > > Alguem pode dar uma sugestão ... >
Você pode fazer tudo utilizando junções: SELECT bp.name AS "Nome da Pessoa", pp.location AS "Endereço", bp1.name AS "Nome do Pai", bp2.name AS "Nome da mãe" FROM (basperson bp INNER JOIN basphysicalperson pp ON bp.personid = pp.personid) LEFT OUTER JOIN basperson bp1 ON pp.fatherid = bp1.personid LEFT OUTER JOIN basperson bp2 ON pp.motherid = bp2.personid ORDER BY bp.name; Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
