使用MySQL的两个表之间的区别

时间:2016-02-19 22:47:47

标签: mysql sql

我有两张表 - OriginalTable& NewTable我正在使用MySQL。两个表都只有一列OrderId。我想找到这两个表之间的区别。以下是三个用例 -

案例I - OriginalTable有额外的OrderId。
案例II - NewTable有额外的OrderId。
案例III - 两个表都有相同的记录。

我使用了Select with Left Join / Right Join。即使我需要为每个用例运行一个查询,我也没问题。我还没有解决第三个用例。不确定是否有现成的东西可以找到MySQL的差异。

1 个答案:

答案 0 :(得分:0)

Case 1 

Run Query->

SELECT * FROM OriginalTable WHERE OriginalTable.OrderID not IN ( SELECT NewTable.OrderID FROM NewTable)

Case 2

Run Query->

SELECT * FROM NewTable WHERE NewTable.OrderID not IN ( SELECT NewTable.OrderID FROM NewTable)

Case 3

Run Query->

SELECT * FROM OriginalTable WHERE OriginalTable.OrderID IN ( SELECT NewTable.OrderID FROM NewTable)

你也可以运行这样的连接,只在两个表中获得相同的订单ID

Case 3    
SELECT * FROM OriginalTable JOIN NewTable ON OriginalTable.OrderID = NewTable.OrderID

AND如果您想要找出两个表中哪些记录不同,那么您可以运行:

SELECT * FROM OriginalTable JOIN NewTable ON OriginalTable.OrderID = NewTable.OrderID WHERE OriginalTable.OrderID IS NOT IN (SELECT NewTable.OrderID FROM NewTable) OR WHERE OriginalTable.OrderID IS NOT IN (SELECT OriginalTable.OrderID FROM OriginalTable)