以下是数据:
tbl_apples
Name | Fruit
+=========+========+
James | Apple
Marie | Apple tbl_bananas
Name | Fruit
+=========+========+
James | Banana
Timothy | Banana
Kevin | Banana 我想退回所有没有同时买苹果和香蕉的名字。因此,在这种情况下,它将是除James之外的所有人。对于海量数据集(以百万计),有没有简单的方法可以做到这一点?如果可能的话,我希望能够退还那些只买苹果而不买香蕉,或者买了香蕉而不买苹果的人。编辑:看起来它可能需要一个连接,因为我刚刚发现香蕉数据和苹果数据存储在两个不同的表中。那么,我如何才能集中展示它们,然后找出谁只买了其中一个呢?
发布于 2017-08-30 23:32:16
您可以通过统一这些表来完成此操作:
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) < 2https://stackoverflow.com/questions/45964368
复制相似问题