Mysql 如何比较两个表并显示每个差异
我有两个表,每个表有一列。我想比较一下这些列,看看它们是否相同。这两张表看起来像这样:Mysql 如何比较两个表并显示每个差异,mysql,sql,sql-server,compare,Mysql,Sql,Sql Server,Compare,我有两个表,每个表有一列。我想比较一下这些列,看看它们是否相同。这两张表看起来像这样: ----------------- | Table1| Table2| ----- ----------- | 1 | | ----- ----------- | 3 | | ----------------- | | 5.5 | ----------------- | 7 | 8 | ----------------- | 8
-----------------
| Table1| Table2|
----- -----------
| 1 | |
----- -----------
| 3 | |
-----------------
| | 5.5 |
-----------------
| 7 | 8 |
-----------------
| 8 | 7 |
-----------------
表一:
-----
| 1 |
-----
| 2 |
-----
| 3 |
-----
| 4 |
-----
| 5 |
-----
| 6 |
-----
| 7 |
-----
| 8 |
-----
| 9 |
-----
表二:
----- <-- missing `1` in table
| 2 |
----- <-- missing `3` in table
| 4 |
-----
| 5 |
-----
| 5.5 | <-- extra `5.5` in table
-----
| 6 |
-----
| 8 | <-- this one isnt the same as the `7` in table one
-----
| 7 | <-- this one isnt the same as the `9` in table one
-----
| 9 |
-----
因此,如果其中一个表中只有一个值,则需要选择它。此外,如果表2中上一个字符串后面的字符串与表1中上一个字符串后面的字符串不相同,则需要选择它
SELECT *
FROM Table1 t1
FULL OUTER JOIN Table2 t2
ON t1.col = t2.col
WHERE t1.col IS NULL
OR t2.col IS NULL
如果您的DBMS不支持完全外部联接
,则
SELECT *
FROM Table1 t1
LEFT JOIN Table2 t2
ON t1.col = t2.col
WHERE t2.col IS NULL
Union all
SELECT *
FROM Table1 t1
Right JOIN Table2 t2
ON t1.col = t2.col
WHERE t1.col IS NULL
完全外部连接是您所需要的
select *
from mytable1 a1
full outer join mytable2 a2
on a1.mycolumn = a2.mycolumn
要仅显示缺少的项目,请添加:
where a1.mycolumn is null
or a2.mycolumn is null
你的意思是一个数据库中有两个表吗?这不是一个免费的编码、代码转换、调试、教程或库查找服务回答这些“为我做一切”问题只是鼓励更多这样的服务questions@RiggsFolly我不理解你的评论,这意味着你不应该给出具体的答案,而应该在不给出示例的情况下进行解释?回答这些“为我做一切”问题只会鼓励更多这样的人questions@RiggsFolly-但至少对我来说,这是一个有趣的问题;)@RiggsFolly我不理解你的评论,这意味着你不应该给出具体的答案,而应该在不给出示例的情况下进行解释?@JotaPardo-这意味着OP没有试图解决你自己的问题。我们不应该通过写作来鼓励这样的问题answers@Prdp感谢您的帮助,当我运行您的代码时,它没有发现这两个表中的任何差异,而这两个表之间肯定存在差异。