SQL Query для поиска отсутствующих строк между двумя связанными таблицами У меня есть две таблицы: Таблица A ID ABC_ID VAL Таблица B ID ABC_ID VAL Эти две таблицы напрямую связаны друг с другом через столбец ABC_ID. Я хочу найти все значения столбца VAL в таблице A, которых нет в таблице B для одного и того же ABC_ID. Ответ 1 SELECT A.ABC_ID, A.VAL WHERE NOT EXISTS (SELECT * FROM B WHERE B.ABC_ID = A.ABC_ID AND B.VAL = A.VAL) или SELECT A.ABC_ID, A.VAL WHERE VAL NOT IN (SELECT VAL FROM B WHERE B.ABC_ID = A.ABC_ID) или SELECT A.ABC_ID, A.VAL LEFT OUTER JOIN B ON A.ABC_ID = B.ABC_ID AND A.VAL = B.VAL WHERE B.VAL IS NULL Обратите внимание, что эти запросы не требуют, чтобы ABC_ID был в таблице B вообще. Я думаю, что делает то, что вы хотите.
Ответ 1 SELECT A.ABC_ID, A.VAL WHERE NOT EXISTS (SELECT * FROM B WHERE B.ABC_ID = A.ABC_ID AND B.VAL = A.VAL) или SELECT A.ABC_ID, A.VAL WHERE VAL NOT IN (SELECT VAL FROM B WHERE B.ABC_ID = A.ABC_ID) или SELECT A.ABC_ID, A.VAL LEFT OUTER JOIN B ON A.ABC_ID = B.ABC_ID AND A.VAL = B.VAL WHERE B.VAL IS NULL Обратите внимание, что эти запросы не требуют, чтобы ABC_ID был в таблице B вообще. Я думаю, что делает то, что вы хотите.