我有3个表,'旧','新'和'结果'表(来自电话簿数据库),它们具有相同的结构和几乎相同的条目。MySQL选择2个表之间的所有区别?
old:
ID | name | number | email | ...
----+--------------------+--------+-------+-----
1 | foo | 123 | ...
2 | bar | 456 |
3 | entrry with typo ||
4 | John Doe | 123345 |
new:
ID | name | number | email | ...
----+--------------------+--------+-------+-----
1 | foo | 123 | ...
2 | bar | 456 |
3 | entry without typo ||
4 | John Doe | 12345 |
5 | newly added entry | 09876 |
从这个“新”的表,我想选择是从“老”表中的不同都行,这样的结果将是:
result:
ID | name | number | email | ...
----+--------------------+--------+-------+-----
3 | entry without typo || ...
4 | John Doe | 12345 |
5 | newly added entry | 09876 |
包括已更改数据的所有条目加上所有没有出现在“旧”表中的条目...
不仅使它更复杂,这些表中大约有10列(包括ID,名称,号码,电子邮件和几个标志以及其他信息)。
是否有任何最高性能的解决方案这样做,或者我将不得不比较每个列与新的查询..?
一个高质量的工作将需要你手工完成 - 'name'/etc不是一个可靠的方法来确定什么是或不存在,或已经改变... –