Согласование данных между 2 наборами данных на SQL
Сейчас мне нужно найти все различия между набором данных 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
запросы в случае наличия повторяющихся строк с одинаковыми данными столбца.