我正在尝试编写一个SQL查询,根据它可以提供其他供应商无法提供的产品来选择供应商。
我有2列: 供应商和产品
我如何选择供应至少1种其他供应商不提供的产品的供应商?
我目前有:
SELECT incart.product, incart.supplier
FROM incart
WHERE incart.product
HAVING count(incart.supplier)=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 |
它将选择供应商a
和c
,因为供应商a
提供的产品1,其他供应商没有,供应商c
提供产品4,其他供应商不