我有两个表:
- 表格显示是否已处理给定主题
- B-与给定项目ID相关的所有可能的主题名称
我想返回的是表,它显示了有待处理的主题。因此,假设表B包含所有可能的topicNames,我想将它们从表A中排除,只显示B-A(ghi,jkl(。要解决此问题,请查看下表C:
我真的很难找到正确的问题。有什么线索吗?
A:
fieldId | projectId | topicName
-------------------------------
1 | A | abc
1 | A | def
B:
fieldId | projectId | topicName
--------------------------------
1 | A | abc
1 | A | def
1 | A | ghi
1 | A | jkl
What I want - Table C:
C:
fieldId | projectId | topicName
-------------------------------
1 | A | ghi
1 | A | jkl
您正在基于两个查询查找EXCEPT。这基本上与UNION相反。
EXCEPT返回query1结果中但不在中的所有行query2的结果。(这有时被称为两个查询。(同样,除非EXCEPT ALL习惯于
对于您的情况,类似于:(参见演示(
select fieldId , projectId , topicName from B
except
select fieldId , projectId , topicName from A;