Same as oracle diff:如何比较两个表? https://stackoverflow.com/questions/688537/除了在 mysql 中。
假设我有两个表 t1 和 t2,它们的布局相同,但可能包含不同的数据。
区分这两个表的最佳方法是什么?
更准确地说,我试图找出一个简单的 SQL 查询,它告诉我 t1 中一行的数据是否与 t2 中相应行的数据不同
看来我不能使用相交或减号。当我尝试时
SELECT * FROM robot intersect SELECT * FROM tbd_robot
我收到错误代码:
[错误代码:1064,SQL 状态:42000] 您的 SQL 中有错误
句法;检查与您的 MySQL 服务器版本对应的手册
在第 1 行的“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
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)