Em 24/11/13, Ramiro Pamponet<[email protected]> escreveu:
> Salve, Salve Galera!
>
> Minha dúvida é a seguinte ...
>
> Estou utilizando o PostgreSQL 9.1.2 e estou desenvolvendo uma aplicação em
> Java para Clínicas Veterinárias. Criei uma tela só para cadastrar o
> prontuário de cada paciente. Existem 3 tabelas que estão diretamente
> interligadas (uma que cadastra o prontuário propriamente dito, uma que
> cadastra o tipo de atendimento (Consulta, Banho/Tosa, Vacinação, etc) e o
> código do prontuário, outra que cadastra as consultas) A tabela consultas
> se relaciona com outras 2 tabelas: anamnese e prescrição. No programa a
> gravação dos dados em cada uma das tabelas (Consulta, Anamnese e
> Prescrição) é independente. Quando o usuário seleciona uma linha na tabela
> consultas os dados referentes à anamnese e prescrição são mostrados em suas
> respectivas abas (ainda não está funcionando). Para gerar uma anamnese ou
> prescrição é necessário haver uma consulta já cadastrada. Meu problema é
> que não estou conseguindo recuperar as informações do banco de dados com a
> query abaixo, pois as outras tabelas (anamnese prescrição)  ainda estão
> vazias. como devo tratar esses campos para a query me retornar os campos
> que possuem algum dado gravado?
>
> A query que estou utilizando é a seguinte
>
>         String sql = "select c.id as codconsulta, c.codveterinario as
> codveterinario, c.data as data, "
>                 + "c.flg_reconsulta as flg_reconsulta, c.data_referencia as
> data_referencia, "
>                 + "p.id as codprescricao, p.prescricao as prescricao, "
>                 + "f.nome as nome, a.hist_pass as hist_pass, a.hist_atual
> as hist_atual, "
>                 + "a.queixa_pri as queixa_pri, a.sinto_pri as sinto_pri,
> a.queixa_sec as queixa_sec, "
>                 + "a.sinto_sec as sinto_sec, a.out_pat as out_pat,
> a.int_ant as int_ant, "
>                 + "a.med_uso as med_uso, a.alergias as alergias,
> a.susp_diag as susp_diag, "
>                 + "a.prognostico as prognostico, a.diagnostico as
> diagnostico, a.alt_lab as alt_lab, "
>                 + "a.dieta as dieta, a.acompanhamento as acompanhamento,
> a.conduta as conduta, "
>                 + "a.recomendacao as recomendacao, a.tratamento as
> tratamento, a.evolucao as evolucao "
>                 + "from consultas c, anamnese a, prescricoes p,
> veterinarios v, funcionarios f "
>                 + "where c.id = a.codconsulta and c.id  = p.codconsulta and
> "
>                 + "c.codveterinario = v.id and v.codfuncionario = f.id "
>                 + "and c.codprontuario =" + tfNumProntuario.getText();
>
> Se ignoro os campos que não possuem dados a consulta mostra o resultado das
> tabelas consultas e funcionarios (nome).
>


Utilize OUTER JOIN (LEFT ou RIGHT de acordo com cada tabela).

http://www.postgresql.org/docs/current/interactive/queries-table-expressions.html#QUERIES-JOIN

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a