MySQL的 - 从两个表中
问题描述:
返回不具备这两个值的行这里的数据:MySQL的 - 从两个表中
tbl_apples
Name | Fruit
+=========+========+
James | Apple
Marie | Apple
tbl_bananas
Name | Fruit
+=========+========+
James | Banana
Timothy | Banana
Kevin | Banana
我想回到那个没有全部名称买两个苹果或香蕉。所以在这种情况下,除了詹姆斯,每个人都应该是这样。有一种简单的方法来处理海量数据集(以百万计)吗?如果可能的话,我希望能够归还那些只买苹果而不买香蕉,或买了香蕉而不买苹果的人。 编辑:看起来像它可能需要一个连接,因为我刚发现香蕉数据和苹果数据存储在两个不同的表。那么我怎样才能一致地展示他们,然后找出谁只买了一件或另一件呢?
答
您可以通过统一的表格做到这一点:
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
你似乎没有PRIMARY KEY,这可以进一步证明是有问题的道路。 – Strawberry
为了简洁起见,我只留下了PRIMARY KEY;我正在寻找更多的正确方向的理论产品 – buttpee
提示:绝不要忽略PK! – Strawberry