1
我目前正在转换数据的过程中,在一张表中,这就是为什么我创建了一个新表,与旧的表相同,但为空。比较两个相同的表MySQL
我已经运行了我的数据转换器,并且在行数上有所不同。
如何选择与两个表不同的所有行,而忽略主键标识符(每个条目都不相同)。
我目前正在转换数据的过程中,在一张表中,这就是为什么我创建了一个新表,与旧的表相同,但为空。比较两个相同的表MySQL
我已经运行了我的数据转换器,并且在行数上有所不同。
如何选择与两个表不同的所有行,而忽略主键标识符(每个条目都不相同)。
select * from (
SELECT 'Table1',t1.* FROM table1 t1 WHERE
(t1.id)
NOT IN (SELECT t2.id FROM table2 t2)
UNION ALL
SELECT 'Table2',t2.* FROM table2 t2 WHERE
(t2.id)
NOT IN (SELECT t1.id FROM table1 t1))temp order by id;
您可以添加在列检查更多信息更多列。 试试看看是否有帮助。
这会给你存在于t1而不在t2中的所有行。您列出除ID以外的所有列。 (当然,你可以切换这个来获得t2中所有行而不是t1中的所有行:-)
select col1, col2, col3, ... from t1
except
select col1, col2, col3, ... from t2;
我通常会添加一个临时附加列,其中包含源表的主键值。 – Gimby