Согласование данных между 2 наборами данных на SQL

image_table

Сейчас мне нужно найти все различия между набором данных new_master и предыдущим, использующим SQL Oracle. Наборы данных имеют одинаковую структуру и состоят как из целых чисел, так и из строк, и не имеют уникального идентификатора ключа, если я не выберу несколько столбцов вместе. Вы можете увидеть изображение в начале как image_table. Я нашел в Интернете этот код и хотел бы спросить вас, есть ли у вас какие-либо советы.

SELECT n.*
FROM new_master as n
LEFT JOIN old_master as o
ON (n.postcode = o.postcode)
WHERE o.postcode IS NULL
SORT BY postcode

При этом я должен вернуть все записи из new_master, которых нет в старом.

благодаря

1 ответ

Если вы находитесь в базе данных Oracle, существует пара запросов, которые могут помочь вам найти любые различия.

Найдите любые записи в СТАРОМ, которых нет в НОВОМ.

SELECT * FROM old_master
MINUS
SELECT * FROM new_master;

Найдите в НОВОМ записи любые записи, которых нет в СТАРОМ.

SELECT * FROM new_master
MINUS
SELECT * FROM old_master;

Подсчитайте количество элементов в СТАРОМ

SELECT COUNT (*) FROM old_master;

Подсчитайте количество предметов в НОВОМ

SELECT COUNT (*) FROM new_master;

В COUNT запросы необходимы в дополнение к MINUS запросы в случае наличия повторяющихся строк с одинаковыми данными столбца.

Другие вопросы по тегам