首页 > 解决方案 > 为表 A 中的每个项目返回表 B 中的所有非活动项目

问题描述

不知道我是否可以用文字很好地解释这一点..

我想查找表 B 中的所有项目,其中表 A 中的每个项目的所有项目都处于非活动状态。假设表 A 只有列“项目”,表 B 有列“项目”和“活动”

Table A              Table B 
A                     A | 1
A                     A | 1  
A                     B | 1
B                     B | 0
B                     C | 0
B                     C | 0
C                     D | 0 
C                     E | 1
D                     
E
F

在该示例中,它应该返回 C 和 D。

我设法将表 A 和 B 与 group by 子句连接在一起,但不知道从那里去哪里。试着环顾四周,只找到了另一个表的值不存在的答案,所以你可以使用“NOT IN”,但这似乎在这里不起作用。

任何帮助,将不胜感激!

标签: sqloracle

解决方案


使用NOT EXISTS

select distinct a.item
from table_A a
where not exists (select 1 from table_B b where b.item = a.item and b.status = 1);

推荐阅读