sql - SQL 选择 team_id 所在的所有项目(1 和 2 以及 3 和 4 以及 .. 列表中的剩余值)
问题描述
我尝试选择团队 id = 值列表的项目;例如:值列表是 (9,7,6,4,3,1),我想创建查询选择,其中包含 team_id = (9,7,6,4,3,1) 的项目;
我的尝试:
select item_id
from t_item as i join
team as t
on t.item_id = i.id
where t.id in (1221, 1219, 1);
但它的工作喜欢in (1221 or 1219 or 1)
,但我想要in(1221 and 1219 and 1)
解决方案
我想你也group by
想要having
:
select i.item_id
from t_item as i join
team as t
on t.item_id = i.id
where t.id in (1221, 1219, 1)
group by i.item_id
having count(distinct t.id) = 3;
请注意,您不需要join
:
select t.item_id
from team t
where t.id in (1221, 1219, 1)
group by t.item_id
having count(distinct t.id) = 3;
如果其中的行team
是唯一的,请使用count(*)
而不是count(distinct)
.
推荐阅读
- javascript - 使用 where 选项测试 TypeORM repo 查找功能
- python - 我如何使用回调和更新类变量
- python - Python 正则表达式搜索错误转义
- grpc-web - 我们可以在没有 docker 依赖的情况下使用 nginx 代理进行 gRPC-web 集成吗?
- python - 树莓派如何使用SpiDev打开方法
- javascript - 从 reducer 数组中检索单个元素
- python - Python 有很多线程
- r - 数组月的真正方法
- android - 这个错误是什么意思?android.support.design.widget.CoordinatorLayout 无法转换为 android.support.v7.widget.Toolbar
- sql - 查找具有重复值的项目