mysql比较两个结果并显示delta

ikfrs5lh  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(399)

所以我有一个名为“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中。当袋子非常大时,这就变得非常耗时。我还考虑将两个查询结果输出到两个文件中,然后对它们进行区分。我希望有一个eligant mysql方法来比较两个查询结果,并且只显示delta。任何帮助都将不胜感激。

vu8f3i0k

vu8f3i0k1#

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

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

qlzsbp2j2#

我想要的是:

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中的东西。

相关问题