sql - 为表 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”,但这似乎在这里不起作用。
任何帮助,将不胜感激!
解决方案
使用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);
推荐阅读
- r - ggplot:如何为多个绘图添加标签(使用 geom_text,没有图例)?
- python - Selenium webdriverwait (.text_to_be_present _in_element 没有) 似乎工作,我找不到任何解决方案
- javascript - 更改代码编辑器插件的 JavaScript
- mongodb - Express-session + Passport + MongoDB - req.isAuthenticated() 在登录后总是返回 false
- javascript - chrome.contextMenus.create 的 onclick 回调中的“info”的类型是什么?
- java - 无法使用 json 对象读取 jsonarray,NPE
- hibernate - 在 ManyToMany 中重命名外键约束
- c - 如何正确处理字符串数组的动态分配?
- vb.net - 如何在 VB.NET 中通过 datgarid 设置单元格颜色并修改其文本
- pyqt5 - 如何编写 Python 代码 pyqt5 在主窗口上附加 2 个小部件