Как найти различия между двумя таблицами, которые когда-то были одинаковыми, но одна теперь повреждена - PullRequest
0 голосов
/ 23 мая 2019

У меня есть таблица (Таблица A), для которой я создал идентичную копию (Таблица B). После того как копия сделана, таблица A стала поврежденной (или, другими словами, некоторые строки были удалены или добавлены, а некоторые строки изменили данные). Я хочу создать один оператор выбора, в котором перечислены все строки, которые были удалены, изменены и вставлены в таблицу А. Я рассмотрел проблемы других людей, которые похожи, но я чувствую, что они не совпадают с тем, что я спрашиваю. Я представляю себе заявление в духе:

SELECT * FROM TABLE_A WHERE TABLE_ID NOT IN (SELECT TABLE_ID FROM TABLE_B);

Однако это не совсем то, что я хочу, так как я хочу найти изменения в каждом столбце, а не только в TABLE_ID. Спасибо всем, кто может мне помочь.

1 Ответ

0 голосов
/ 23 мая 2019

Найти строки в TABLE_A, у которых нет подходящей строки в всех столбцах TABLE_B:

SELECT TABLE_A.TABLE_ID
FROM TABLE_A LEFT NATURAL JOIN TABLE_B
WHERE TABLE_B.TABLE_ID IS NULL

Найдите обратное: строки в TABLE_B, у которых нет подходящей строки в всех столбцах TABLE_A:

SELECT TABLE_B.TABLE_ID
FROM TABLE_B LEFT NATURAL JOIN TABLE_A
WHERE TABLE_A.TABLE_ID IS NULL

Это должно начать вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...