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
