fala galera, blza? então to com uma query aki q vi na net, e n entendi muito bem ela. vejam:
2) buscar os nomes dos médicos que têm consulta marcada com todos os pacientes
select m.nome
from Médicos m
where not exists (select *
from Pacientes p
where not exists (select *
from Consultas c
where p.codp = c.codp
and m.codm = c.codm))
* interpreta-se da seguinte forma: “buscar os nomes dos médicos tais que não existam pacientes que não tenham consultas marcadas com eles”
* Para o médico 1: existem pacientes (2 e 3) que não têm consultas marcadas com este médico (1a subconsulta retorna não vazia)
* Para o médico 2: não existe paciente que não tenha consulta marcada com este médico (1a subconsulta retorna vazia) – Ele é buscado!
mesmo lendo essa explicaçao, eu entendo a logica doq é feito, porem não entendi como são os passos de cada not exists, um dentro do outro eu fiquei meio confuso, alguém poderia exclarecer o passo a passo dessa query ?
Pergunta
Steven Tyler
fala galera, blza? então to com uma query aki q vi na net, e n entendi muito bem ela. vejam:
2) buscar os nomes dos médicos que têm consulta marcada com todos os pacientes
* interpreta-se da seguinte forma: “buscar os nomes dos médicos tais que não existam pacientes que não tenham consultas marcadas com eles”
Simulação:
Médicos (codm) Pacientes (codp) Consultas (codm, codp)
1 1 1 1
2 2 1 4
3 3 2 1
4 4 2 2
2 3
2 4
* Para o médico 1: existem pacientes (2 e 3) que não têm consultas marcadas com este médico (1a subconsulta retorna não vazia)
* Para o médico 2: não existe paciente que não tenha consulta marcada com este médico (1a subconsulta retorna vazia) – Ele é buscado!
mesmo lendo essa explicaçao, eu entendo a logica doq é feito, porem não entendi como são os passos de cada not exists, um dentro do outro eu fiquei meio confuso, alguém poderia exclarecer o passo a passo dessa query ?
muito obrigado
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados