Я пытаюсь настроить SQL-запрос с предложением IN в запросе.Настройка SQL-запроса (оптимизация запроса)
Я попытался заменить IN на Join и посмотрел планы запроса. Они выглядят похожими во время исполнения, но результат отличается. Кто-нибудь может помочь мне в этом? Я использую базу данных магазина в pgadmin III. Спасибо заранее. ORIGINAL ЗАПРОСА:
SELECT person.id
FROM SHOP.person
WHERE person.id IN (SELECT personid
FROM SHOP.contactperson
WHERE companyid = 5);
в
SELECT person.id
FROM SHOP.person
JOIN SHOP.contactperson
ON person.id = contactperson.id
WHERE contactperson.companyid = 5;
Редакцией: НАСТОЯЩИЙ запрос возвращает корректные результаты:
SELECT person.id
FROM SHOP.person
JOIN SHOP.contactperson
ON person.id = contactperson.personid
WHERE contactperson.companyid = 5;
Я использовал contactperson.id
вместо contactperson.id
, и когда я могу изменить его на правильный запрос дал мне правильные результаты.
настройка производительности ** весьма конкретного производителя ** - мы должны знать, какие конкретные ** базы данных ** (и какой версии) вы используете. SQL - это просто язык запросов, используемый подавляющим большинством реляционных систем баз данных. –
@marc_s - это база данных магазина, и я использую его в pgadmin III. –
Просьба показать структуры таблиц, включая индексы и планы запросов. –