我需要帮助我的关系表中的这个select语句 (供应商和产品都是复合主键,唯一标识每一行
Supplier Products
ABC Toys
ABC Snacks
ZXC Snacks
ZXC Food
QWE Toys
ABC Food
我需要找到不供应玩具的供应商 所以我只能得到ZXC
我尝试以下但它给了我ABC,ZXC
select distinct Supplier
from table
where NOT (Products ='Toys');
(我正在使用oracle)我的查询应该如何?感谢
答案 0 :(得分:5)
select distinct supplier
from table
where supplier not in (select supplier from table where products = 'Toys')
答案 1 :(得分:2)
如果条件计数等于0(组内没有匹配项),您可以group by
Supplier
并使用having
子句评估为true:
select Supplier
from table
group by Supplier
having count(case when Products = 'Toys' then Products end) = 0
答案 2 :(得分:1)
使用NOT EXISTS
select distinct
supplier
from
table t1
where
not exists (select * from table t2 where t1.supplier = t2.supplier and t2.products = 'Toys')