2017-08-30 105 views
1

返回不具备这两个值的行这里的数据:MySQL的 - 从两个表中

tbl_apples

Name | Fruit 
+=========+========+ 

    James | Apple 
    Marie | Apple 

tbl_bananas

Name | Fruit 
+=========+========+ 

    James | Banana 
    Timothy | Banana  
    Kevin | Banana 

我想回到那个没有全部名称买两个苹果或香蕉。所以在这种情况下,除了詹姆斯,每个人都应该是这样。有一种简单的方法来处理海量数据集(以百万计)吗?如果可能的话,我希望能够归还那些只买苹果而不买香蕉,或买了香蕉而不买苹果的人。 编辑:看起来像它可能需要一个连接,因为我刚发现香蕉数据和苹果数据存储在两个不同的表。那么我怎样才能一致地展示他们,然后找出谁只买了一件或另一件呢?

+0

你似乎没有PRIMARY KEY,这可以进一步证明是有问题的道路。 – Strawberry

+0

为了简洁起见,我只留下了PRIMARY KEY;我正在寻找更多的正确方向的理论产品 – buttpee

+0

提示:绝不要忽略PK! – Strawberry

回答

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