在mysql中过滤一个组

KMK*_*KMK 2 sql sql-server sql-except

我有一个表格中的样本数据

Id      Dsc
500001  INSURED
500001  THIRD PARTY
500001  THIRD PARTY
500001  THIRD PARTY
500002  INSURED
500002  THIRD PARTY
500003  INSURED
500004  BROKER
500005  CLAIMANT
Run Code Online (Sandbox Code Playgroud)

我希望提取那些Dsc既不是'保险'也不是'经纪人'的ID.由于两列都有重复数据,我设计了以下查询...

Select Id from table1 where Dsc not in ('Insured', 'Broker')
Except
Select Id from table1 where Dsc in ('Insured', 'Broker')
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以做到这一点?

Mih*_*hai 6

SELECT id FROM table1 GROUP BY id 
HAVING SUM(CASE WHEN Dsc='Insured' THEN 1 ELSE 0 END)=0
AND SUM(CASE WHEN Dsc='Broker' THEN 1 ELSE 0 END)=0
Run Code Online (Sandbox Code Playgroud)