所以我有一个名为“食品”的表,在这个表中我有两列'groceryBag‘和'item’,如下所示:
groceryBag item
---------- -----
1 banana
1 eggs
2 ham
1 apple
1 chicken
2 apple
2 eggs
我的目标是返回bag 1和bag 2之间不同的结果。因此,在上面的示例中,结果将是:
groceryBag item
---------- -----
1 banana
2 ham
1 chicken
最初,我打算用python来查看包1中的每件物品是否也在包2中,然后检查包2中的每件物品是否都在包1中。当包非常大时,这会变得非常耗时。我还考虑将两个查询结果输出到两个文件中,然后对它们进行比较。我希望有一种合格的MySQL方法来比较两个查询结果,并且只显示增量。任何帮助都将不胜感激。
发布于 2018-09-07 08:12:10
计算每一项的行数。如果一件商品只有1行,那么它只有1个袋子。
SELECT MAX(bag) AS bag, item
FROM foo
GROUP BY item
HAVING COUNT(*) = 1
发布于 2018-09-08 20:34:57
我要找的是:
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中的东西。
https://stackoverflow.com/questions/52213417
复制相似问题