Ето един ефективен подход, който изобщо не използва подзаявки. Можете просто да филтрирате резултатите в Having
клауза, използваща условно агрегиране:
ИЗБЕРЕТЕ conversion_id FROM assoc_user__conversation GROUP BY conversion_id HAVING -- всички редове до съществуват само за 1000001 или 1000002 само SUM(user_id IN (1000001, 1000002)) =COUNT(*)
Резултат
<предварителен код>| ИД на разговор || --------------- || 10 |Друг възможен вариант на условно агрегиране е:
SELECT conversion_id FROM assoc_user__conversation GROUP BY conversion_id HAVING -- поне един ред за 1000001 да съществува SUM(user_id =1000001) И -- най-малко един ред за 1000002 да съществува SUM(user_id =1000002) И -- няма ред да съществува за други стойности на user_id NOT SUM(user_id NOT IN (1000001, 1000002))