Исключение данных, НЕ входящих в соединение с использованием DB2, SQL PL

#join #db2 #inner-join

#Присоединиться #db2 #внутреннее соединение

Вопрос:

Мне нужна помощь в формулировании правильного подхода к запросу.

У меня есть сотрудники, которым мне нужно дать работу. Если они недоступны в определенную дату, они исключаются из группы сотрудников, которые могут получить работу. Я думаю, понятно, что я пытаюсь сделать, но это неправильный синтаксис:

 INNER JOIN mySchema."STAFF" S
ON RS.STAFF_ID = S.STAFF_ID
AND RS.STAFF_ID NOT IN (SELECT SU.STAFF_ID 
FROM mySchema."STAFF_UNAVAIL" SU
WHERE SU.UNAVAIL_DT = OUTSTANDING_DATE)
  

Есть идеи о том, как можно добиться NOT IN в соединении, фактически не выполняя это в соединении?

Комментарии:

1. было бы полезно предоставить полный запрос и точную ошибку, которую вы получаете

Ответ №1:

поместите это в where предложение после объединений

 INNER JOIN mySchema."STAFF" S
ON RS.STAFF_ID = S.STAFF_ID
...any other joins...
WHERE RS.STAFF_ID NOT IN (SELECT SU.STAFF_ID 
FROM mySchema."STAFF_UNAVAIL" SU
WHERE SU.UNAVAIL_DT = OUTSTANDING_DATE)