比较2个表中的差异

时间:2018-07-31 16:36:47

标签: mysql

我正在Ubuntu上运行MySQL服务器,已更新了补丁程序...

在MySQL中,数据库中有2个表。我正在尝试使库存查询更改有效,但不是:(

我所拥有的是一个表(表A),该表保存我上次检查库存水平的时间,另一个表(表B)存储当前的库存水平。每个表具有相同的列名和类型。

我想做的是报告table B.的更改,原因是此表中大约有1/2百万个项目-我不能像我一样仅使用该表作为源来更新每个项目一次最多只能进行100次更改。因此,理想情况下,我想获取更改-将它们存储在临时表中,并使用该表仅使用那些更改来更新我们的系统...

以下内容恢复了更改,但同时显示了Table A and Table B

我尝试使用左联接仅返回Table B的报告,但我不是mysql(或任何SQL)人员,因此请使用谷歌搜索所有内容……任何人都可以帮忙。 TIA。斯图尔特

SELECT StockItemName,StockLevel
FROM (
SELECT StockItemName,StockLevel FROM stock
UNION ALL
SELECT StockItemName,StockLevel FROM stock_copy
) tbl
GROUP BY StockItemName,StockLevel
HAVING count(*) = 1
ORDER BY StockItemName;

2 个答案:

答案 0 :(得分:0)

下面的查询在两个表中吐出具有不同库存水平的记录。

Settings

答案 1 :(得分:0)

好-我解决了-因为每个表上都没有唯一的ID可以匹配,所以我没有用一个唯一的ID,而是用3个列创建了唯一的ID,然后将其连接起来。

选择sc.StockItem,sc.StockItemName,sc.Warehouse,sc.stocklevel 从库存 左加入stock_copy sc(sc.StockItem = s.StockItem AND sc.StockItemName = s.StockItemName AND sc.Warehouse = s.Warehouse AND sc.StockLevel <> s.StockLevel) sc.StockLevel不是Null;