Dúvida sobre um consulta sql que não esta dando certo
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!!!
É 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
Curtidas 0
Respostas
Emerson Nascimento
03/11/2011
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.
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.
GOSTEI 0
Wilson Junior
03/11/2011
De uma olhada neste link http://www.luis.blog.br/left-join-e-inner-join-juncao-em-consultas-sql.aspx
Espero ter colaborado.
Espero ter colaborado.
GOSTEI 0
Wilson Junior
03/11/2011
O Emerson ta ligeiro hein...
GOSTEI 0
Rerisson Lima
03/11/2011
GALERA MUITO OBRIGADO JA FAZ 4 SEMANAS ESTAVA TENTANDO FAZER ESSA CONSULTA MAIS NINGUEM CONSEGUIA ME AJUDAR!!!!
ESTOU DEVENDO ESSA PARA VOCÊS
ESTOU DEVENDO ESSA PARA VOCÊS
GOSTEI 0
Rerisson Lima
03/11/2011
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
Agradoço a todos do FORUM
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
GOSTEI 0