找到供应其他人没有的产品的供应商

时间:2013-11-27 09:16:31

标签: sql

我正在尝试编写一个SQL查询,根据它可以提供其他供应商无法提供的产品来选择供应商。

我有2列: 供应商和产品

我如何选择供应至少1种其他供应商不提供的产品的供应商?

我目前有:

SELECT incart.product, incart.supplier
FROM incart
WHERE incart.product 
HAVING count(incart.supplier)=1
;

1 个答案:

答案 0 :(得分:2)

试试这个:

SELECT 
  i1.supplier
FROM incart i1
WHERE i1.product NOT IN(SELECT product 
                        FROM incart i2
                        WHERE i1.supplier <> i2.supplier);

例如,对于以下示例数据:

| PRODUCT | SUPPLIER |
|---------|----------|
|       1 |        a |
|       2 |        b |
|       3 |        b |
|       2 |        c |
|       3 |        c |
|       4 |        c |

它将选择供应商ac,因为供应商a提供的产品1,其他供应商没有,供应商c提供产品4,其他供应商不