假设公司名称和产品名称是它们关系中的主键,我不明白为什么公司名称不能在此查询中重复:
SELECT Company.name
FROM Company, Product
WHERE Company.name=Product.maker
AND Product.name IN
(SELECT Purchase.product
FROM Purchase
WHERE Purchase.buyer = ‘Joe Blow‘);
如果 S 公司生产了两种产品 X,Y,Joe Blow 都购买了它们,那么一开始我们会为条件“Company.name=Product.maker”制作笛卡尔积:SX,SY,对于两者,Product.name 是在计算的集合中,因此 S 应该输出两次,不是吗?