Найдите проблему ниже и подтвердите ее.
Шаг 01: На основе условия соединения получение значения как из таблицы, так и из заполнения. Поскольку в таблице B нет соответствующего значения, все столбцы заполняются значением NULL.
Столбец: B.OP_TYPE, B.DEMO_ID
ksql> SELECT PLAN_ID,A_OP_TYPE,B.OP_TYPE,A.PRIMARY_DEMO_ID,B.DEMO_ID \
FROM TBL_PLN_PRO_DIV_SDIV A \
LEFT JOIN TBL_MS_TARGET_GROUP11 B \
ON (A.PRIMARY_DEMO_ID=B.DEMO_ID);
382591 | U | null | 3085 | null
Тот же запрос выбора с условием where дает тот же результат, что и ожидалось.
ksql> SELECT PLAN_ID,A_OP_TYPE,B.OP_TYPE,A.PRIMARY_DEMO_ID,B.DEMO_ID \
FROM TBL_PLN_PRO_DIV_SDIV A \
LEFT JOIN TBL_MS_TARGET_GROUP11 B \
ON (A.PRIMARY_DEMO_ID=B.DEMO_ID) WHERE B.OP_TYPE IS NULL;
382591 | U | null | 3085 | null
Но когда мы попытались выбрать условие Not Equal where, соответствующий запрос не дал правильного результата. B.OP_TYPE! = 'D' - здесь условие, включающее B.OP_TYPE, равно нулю
ksql> SELECT PLAN_ID,A_OP_TYPE,B.OP_TYPE,A.PRIMARY_DEMO_ID,B.DEMO_ID \
FROM TBL_PLN_PRO_DIV_SDIV A \
LEFT JOIN TBL_MS_TARGET_GROUP11 B \
ON (A.PRIMARY_DEMO_ID=B.DEMO_ID) WHERE B.OP_TYPE != 'D';