小编典典

比较MySQL中两个表之间的差异

mysql

oracle
diff
相同:如何比较两个表?除了在MySQL。

假设我有两个表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进行查询。不知道这是否可能是一个因素。


阅读 658

收藏
2020-05-17

共1个答案

小编典典

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
        )
2020-05-17