首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从查询中过滤id并在另一个查询中使用

从查询中过滤id并在另一个查询中使用
EN

Stack Overflow用户
提问于 2019-09-18 07:25:21
回答 1查看 170关注 0票数 0

我已经用我想要的过滤器询问了user_invitations.inviter_id,它是:

代码语言:javascript
运行
复制
select 
  inviter_id, 
  count(inviter_id) as invited_cnt
from user_invitations
group by 
  inviter_id
having 
  invited_cnt >= 52
order by 
  invited_cnt

从这里开始,我尝试只使用inviter_id在另一个名为user的表中获取id (即,希望获得与我刚才获得的inviter_id匹配的user_id )。

我试过做内心的活动

代码语言:javascript
运行
复制
from users
inner join (
    select inviter_id, count(inviter_id) as invited_cnt
    from user_invitations
    group by inviter_id
    having invited_cnt >= 52
    order by invited_cnt
)user_inv
on users.id = user_inv.id;

没有运气,我想过使用子查询

代码语言:javascript
运行
复制
from users
where id in (
    select inviter_id
    from user_invitations
    where inviter_id in (
        select count(inviter_id) as invited_cnt
        from user_invitations
        group by inviter_id
        having invited_cnt >= 52
    )
    group by inviter_id
);

但在大多数内部查询中,我无法找到通过invited_cnt >= 52进行过滤后返回>=的方法。我怎样才能做到这一点,既然使用invited_cnt >= 52我们需要的是农业计数,难道不可能吗?

我看过一些资源:Select id from one query and use it in another

但他们似乎都没有处理总体问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-18 07:37:46

如果我理解您的问题,这个查询应该提供与user_id匹配的来自userinviter_id

代码语言:javascript
运行
复制
SELECT
    us.inviter_id, 
    count(us.inviter_id) AS invited_cnt,
    u.user_id
FROM user_invitations AS us
JOIN user AS u ON u.user_id = us.inviter_id //just change the column name if needed
GROUP BY
  us.inviter_id
HAVING
  invited_cnt >= 52
ORDER BY 
  invited_cnt

如果您只期望一个user_id,那么我认为这是可行的。不过,如果您将表结构加上一些示例数据和预期的输出,那就更好了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57987232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档