MySQL比较两个结果并显示增量

时间:2018-09-06 23:40:28

标签: mysql sorting delta

因此,我有一个名为“ food”的表,在该表中,有两列“ groceryBag”和“ item”,如下所示:

groceryBag    item
----------    -----
1             banana
1             eggs
2             ham
1             apple
1             chicken
2             apple
2             eggs

我的目标是返回袋子1和袋子2不同的结果。因此,在上面的示例中,结果将是:

groceryBag    item
----------    -----
1             banana
2             ham
1             chicken

最初,我要使用python来处理此问题,方法是检查袋子1中的每个物品是否也位于袋子2中,然后检查袋子2中的每个项目是否也位于袋子1中。袋子很大。我还考虑过将两个查询结果都输出到两个文件中,然后进行比较。我希望有一种比较有效的MySQL方法来比较两个查询结果,并仅显示变化量。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

计算每个项目的行数。如果一件物品只有一排,那么它只能放在1袋中。

SELECT MAX(bag) AS bag, item
FROM foo
GROUP BY item
HAVING COUNT(*) = 1

答案 1 :(得分:0)

我要找的是:

select * from (
select f.groceryBag, f.item as 1item from foo f where f.groceryBag = 1) 
as q1 where q1.1item no in ( 
select f.item from foo f where f.groceryBag = 2)        

然后反向进行操作以获取包装2中的内容,而不获取包装1中的内容。