У меня есть 3 таблицы: «старая», «новая» и «таблица результатов» (из базы данных телефонной книги), они имеют одинаковую структуру и почти одинаковые записи.
old:
ID | name | number | email | ...
----+--------------------+--------+-------+-----
1 | foo | 123 | ...
2 | bar | 456 |
3 | entrry with typo | 012345 |
4 | John Doe | 123345 |
new:
ID | name | number | email | ...
----+--------------------+--------+-------+-----
1 | foo | 123 | ...
2 | bar | 456 |
3 | entry without typo | 012345 |
4 | John Doe | 12345 |
5 | newly added entry | 09876 |
Из этого«Новая» таблица Я хотел бы выбрать все строки, которые отличаются от «старой» таблицы, поэтому результат будет:
result:
ID | name | number | email | ...
----+--------------------+--------+-------+-----
3 | entry without typo | 012345 | ...
4 | John Doe | 12345 |
5 | newly added entry | 09876 |
, включая все записи, которые изменили данные, плюс все записи, которые непоявляются в «старой» таблице ...
Мало того, чтобы сделать ее более сложной, в этих таблицах около 10 столбцов (включая идентификатор, имя, номер, адрес электронной почты, несколько флагов и другую информацию).
Есть ли наиболее эффективное решение для этого или мне придется сравнивать каждый столбец с новым запросом ..?