Подтвердить что ты не робот

SQL Query для поиска отсутствующих строк между двумя связанными таблицами

У меня есть две таблицы:

Таблица A

  • ID
  • ABC_ID
  • VAL

Таблица B

  • ID
  • ABC_ID
  • VAL

Эти две таблицы напрямую связаны друг с другом через столбец ABC_ID.

Я хочу найти все значения столбца VAL в таблице A, которых нет в таблице B для одного и того же ABC_ID.

4b9b3361

Ответ 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 вообще. Я думаю, что делает то, что вы хотите.