Я пытаюсь настроить SQL-запрос, в котором есть предложение IN.
Я попытался заменить IN на Join и посмотрел планы запросов. Оба варианта похожи по времени выполнения, но результат отличается. Может ли кто-нибудь помочь мне в этом? Я использую базу данных магазина в pgadmin III. Заранее спасибо. ОРИГИНАЛЬНЫЙ ЗАПРОС:
SELECT person.id
FROM SHOP.person
WHERE person.id IN (SELECT personid
FROM SHOP.contactperson
WHERE companyid = 5);
to
SELECT person.id
FROM SHOP.person
JOIN SHOP.contactperson
ON person.id = contactperson.id
WHERE contactperson.companyid = 5;
EDITED: ТЕПЕРЬ ЭТОТ ЗАПРОС ВОЗВРАЩАЕТ ПРАВИЛЬНЫЕ РЕЗУЛЬТАТЫ:
SELECT person.id
FROM SHOP.person
JOIN SHOP.contactperson
ON person.id = contactperson.personid
WHERE contactperson.companyid = 5;
Я использовал contactperson.id
вместо contactperson.id
, и когда я изменил его на правильный запрос, он дал мне правильные результаты.