В своем исследовании я хочу увидеть заболевания, связанные с диабетом, путем перечисления всех заболеваний, которые сопутствуют диабету, то есть когда есть хотя бы один пациент, у которого есть медицинские записи как о диабете, так и об этом заболевании. Сначала я пробую этот запрос:
use [ng_data]
select distinct [disease]
from [dbo].[Final_View_2]
where [encode_id] in
(
select [encode_id]
where [disease] like '%diabetes%'
)
Где encode_id
— идентификатор пациента. Но этот запрос возвращает только заболевания, название которых содержит слово «диабет». Похоже, условие в подзапросе влияет на результаты в основном запросе.
Затем, когда я пытаюсь выполнить этот запрос:
use [ng_data]
select distinct [disease]
from [dbo].[Final_View_2]
where [encode_id] in
(
select [encode_id]
from [dbo].[Final_View_2]
where [disease] like '%diabetes%'
)
он работает правильно. Кажется, что добавление предложения from
в подзапрос может устранить влияние предложения where
в подзапросе на основной запрос. Может ли кто-нибудь объяснить, как выполняются запросы и почему это дает такой результат? Меня смущает зависимость основного запроса от подзапроса.