比较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进行查询。不知道这是否可能是一个因素。

回答:

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

)

以上是 比较MySQL中两个表之间的差异 的全部内容, 来源链接: utcz.com/qa/415336.html

回到顶部