会社名と製品名が関係の主キーであると仮定すると、このクエリで会社名を繰り返すことができない理由がわかりません。
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 社が 2 つの製品 X、Y を製造し、その両方を Joe Blow が購入した場合、最初に条件「Company.name=Product.maker」のデカルト積を作成します: SX、SY、両方の Product.name は計算するセットでは、したがって S を 2 回出力する必要があります。