Fórum Dúvida sobre um consulta sql que não esta dando certo #409052

03/11/2011

0

Pessoal eu pesquiser pelo forum mais não achei o que eu queria!

É o seguinte fiz uma aplicação para o cadastro de varios paciente de um projeto que esta acontecendo aqui na minha cidade.
Esses pacientes fazem varis exames.
portanto o banco de dados tem as seguintes tabelas.:
CADASTRO (Onde fica todos os dados dos paciente)

SANGUE (Onde fica os resultados dos exames do SANGUE)
ANTROPOMETRIA (Onde fica os resultados dos exames da ANTROPOMETRIA)
MAPA(Onde fica os resultados dos exames do MAPA)

E cada paciente tem um numero de paciente e numero da família.
Nos exames de SANGUE, ANTROPOMETRIA e MAPA os campos (NOME, NUM PACIENTE E NUM FAMILIA) são chaves estrangeiras da tabela de CADASTRO.

Eu preciso fazer uma consulta que me retorna-se o seguinte.:

Abra o link para ver a imagem http://www.portalcristo.com.br/portal/Sem título1.jpg




Como vocês podem ver todos os pacientes estão ai mesmo que ele não tenha feito exames nenhum mais os dados dele esta ali. E como tudo esta em tabelas separadas preciso montar uma SQL que através da chave estrangeira una os resultados dos exames aos pacientes de cada exame.

Caso eu não tenha sido muito claro apostem ai que tento formular melhor minha pergunta .

Meu Banco de Dados tem as seguintes tabelas e campos

Abra o link para ver a imagem http://www.portalcristo.com.br/portal/Sem título.jpg

Desde já agradeço a todos!!!
Rerisson Lima

Rerisson Lima

Responder

Posts

03/11/2011

Emerson Nascimento

telvez esta instrução te ajude a ter uma idéia de como fazer:

SELECT *
FROM CADASTRO C
LEFT JOIN ANTROPOMETRIA A ON A.NOME_A = C.NOME AND A.NUM_PACI_A = C.NUM_PACI AND A.NUM_FAMI_A = C.NUM_FAMI
LEFT JOIN MAPA M ON M.NOME_M = C.NOME AND M.NUM_PACI_M = C.NUM_PACI AND M.NUM_FAMI_M = C.NUM_FAMI
LEFT JOIN SANGUE S ON S.NOME_S = C.NOME AND S.NUM_PACI_S = C.NUM_PACI AND S.NUM_FAMI_S = C.NUM_FAMI
WHERE NOT (A.CODIGO IS NULL AND M.CODIGO IS NULL AND S.CODIGO IS NULL)

note que poderá ser necessário GROUP BY ou DISTINCT para exibir os dados.
Responder

Gostei + 0

03/11/2011

Wilson Junior

De uma olhada neste link http://www.luis.blog.br/left-join-e-inner-join-juncao-em-consultas-sql.aspx

Espero ter colaborado.
Responder

Gostei + 0

03/11/2011

Wilson Junior

O Emerson ta ligeiro hein...
Responder

Gostei + 0

03/11/2011

Rerisson Lima

GALERA MUITO OBRIGADO JA FAZ 4 SEMANAS ESTAVA TENTANDO FAZER ESSA CONSULTA MAIS NINGUEM CONSEGUIA ME AJUDAR!!!!
ESTOU DEVENDO ESSA PARA VOCÊS
Responder

Gostei + 0

03/11/2011

Rerisson Lima

Desculpe por escrever a mensagem anterior toda em maiuscula! (escrever olhando para o teclado é péssimo rsrsrsrsrsr)

Para quem quiser saber minha consulta ficou assim
select cadastro.*, sangue.*, antropometria.*
from cadastro  LEFT JOIN sangue
ON cadastro.codigo = sangue.num_paci_s
LEFT JOIN antropometria
ON cadastro.codigo = antropometria.num_paci_a
LEFT JOIN mapa
ON cadastro.codigo = mapa.num_paci_m
order by sangue.num_paci_s, antropometria.num_paci_a, mapa.num_paci_m


Agradoço a todos do FORUM
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar