首页 > 解决方案 > MySQL比较两个结果并显示增量

问题描述

所以我有一个名为“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 方法来比较两个查询结果并且只显示增量。任何帮助将不胜感激。

标签: mysqlsortingdelta

解决方案


计算每个项目的行数。如果一件物品仅在 1 行中,则它仅在 1 个袋子中。

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

推荐阅读