我有两张表 - OriginalTable
& NewTable
我正在使用MySQL
。两个表都只有一列OrderId
。我想找到这两个表之间的区别。以下是三个用例 -
案例I - OriginalTable有额外的OrderId。
案例II - NewTable有额外的OrderId。
案例III - 两个表都有相同的记录。
我使用了Select with Left Join / Right Join。即使我需要为每个用例运行一个查询,我也没问题。我还没有解决第三个用例。不确定是否有现成的东西可以找到MySQL的差异。
答案 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)