Конвертировать NOT IN в LEFT JOIN - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть этот запрос:

SELECT id from patients_member where id NOT IN
(SELECT msc.member_id 
    FROM journeys_memberstagechallenge msc
    WHERE msc.challenge_id = '2ab9a76c1ad211e7a1350242ac110003'
          AND msc.completed_date IS NOT NULL);

Мне нужно обновить этот запрос, чтобы он оставил только соединения и условия, чтобы мой генератор кода мог генерировать его автоматически.Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Это будет выглядеть следующим образом:

select pm.id
from patients_member pm left join
     journeys_memberstagechallenge msc
     ON msc.member_id = pm.id and
        msc.challenge_id = '2ab9a76c1ad211e7a1350242ac110003' and
        msc.completed_date is not null
where msc.member_id is null;

Условия для второй таблицы указаны в предложении on.Предложение where - проверка на отсутствие совпадений - реализует условие not in.

0 голосов
/ 11 февраля 2019

Вы можете попробовать следующим образом.

SELECT t1.id 
FROM   patients_member t1 
       LEFT JOIN journeys_memberstagechallenge t2 
              ON t2.member_id = t1.id 
                 AND t2.challenge_id = '2ab9a76c1ad211e7a1350242ac110003' 
                 AND t2.completed_date IS NOT NULL 
WHERE  t2.member_id IS NULL 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...