与oracle diff相同:如何比较两个表?除了在MySQL。
假设我有两个表t1和t2,它们的布局相同,但是可能包含不同的数据。 区分这两个表的最佳方法是什么?
假设我有两个表t1和t2,它们的布局相同,但是可能包含不同的数据。
区分这两个表的最佳方法是什么?
更准确地说,我正在尝试找出一个简单的SQL查询,该查询告诉我t1中某一行的数据是否不同于t2中相应行的数据
看来我不能使用相交也不能减去。当我尝试
SELECT * FROM robot intersect SELECT * FROM tbd_robot
我收到错误代码:
[错误代码:1064,SQL状态:42000]您的SQL语法错误;在第1行的“ SELECT * FROM tbd_robot”附近使用与您的MySQL服务器版本相对应的手册,以在SELECT * FROM tbd_robot附近使用正确的语法
我在语法上做错了吗?如果没有,还有其他查询可以使用吗?
编辑:另外,我正在通过免费版本DbVisualizer进行查询。不知道这是否可能是一个因素。
INTERSECT需要模拟为MySQL:
INTERSECT
MySQL
SELECT 'robot' AS `set`, r.* FROM robot r WHERE ROW(r.col1, r.col2, …) NOT IN ( SELECT col1, col2, ... FROM tbd_robot ) UNION ALL SELECT 'tbd_robot' AS `set`, t.* FROM tbd_robot t WHERE ROW(t.col1, t.col2, …) NOT IN ( SELECT col1, col2, ... FROM robot )