以下是数据:
tbl_apples
Name | Fruit
+=========+========+
James | Apple
Marie | Apple
tbl_bananas
Name | Fruit
+=========+========+
James | Banana
Timothy | Banana
Kevin | Banana
我想要退回所有不买苹果或香蕉的名字。所以在这种情况下,除了詹姆斯之外,每个人都是。是否有一种简单的方法可以为大量数据集(数百万)做到这一点?如果可能的话,我希望能够归还那些只买苹果而不是香蕉,或买香蕉而不是苹果的人。 编辑:看起来它可能需要加入,因为我发现香蕉数据和苹果数据存储在两个不同的表中。那么我如何能够凝聚地展示它们然后找出谁只买了一个呢?
答案 0 :(得分:0)
您可以通过统一表来执行此操作:
select t.name
from (
select a.name, 'Apple' as fruit
from tbl_apples a
union
select b.name, 'Banana' as fruit
from tbl_bananas b ) t
group by t.name
having count(distinct fruit) < 2