选择没有任何订阅处于活动状态的用户(活动记录查询)



我有如下关联

一个用户有多个订阅(只有一个订阅状态为活动)订阅属于用户

我正在寻找一个活动记录查询,可以帮助我选择所有订阅都被取消的用户,或者换句话说,没有任何活动订阅的用户。

对于这个问题,也欢迎使用原始Sql查询。

有两种方法

一1:

User.where.not(id: Subscription.where(status: 'active').pluck(:user_id))

2:

active_subscription_user_ids = Subscription.where(status: 'active').pluck(:user_id)
User.left_outer_joins(:subscriptions).where.not(id: active_subscription_user_ids)

可以通过下面的查询

User.where.not(id: Subscription.select(:user_id).where(status: 'Active'))

请尝试下面的查询

User.joins(:subscriptions).where('subscriptions.status = "active"').group('subscriptions.id').having("count(subscriptions.id) < 1")

相关内容

  • 没有找到相关文章

最新更新