Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何比较两个表并显示每个差异_Mysql_Sql_Sql Server_Compare - Fatal编程技术网

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感谢您的帮助,当我运行您的代码时,它没有发现这两个表中的任何差异,而这两个表之间肯定存在差异。