0

我有一段代码,我必须在其中应用一些子查询。我正在尝试将这段纯 sql 更改为更多的 rails 方式。是否可以在这里实现 ActiveRecord 关系?

Customer.joins("RIGHT JOIN customers_users ON customers_users.customer_id = customers.id").
         where("customers_users.user_id IN (
                                    SELECT user_id FROM customers_users
                                    GROUP BY customers_users.user_id
                                    HAVING COUNT(customers_users.user_id) = 1)")
4

1 回答 1

1

是的,您可以像这样转换它

首先在客户模型中创建与 customer_users 的关系

Customer.joins(:customers_users).where(customers_users: { user_id: CustomersUser.select(:user_id).group(:user_id).having('COUNT(customers_users.user_id) = 1') })
于 2019-04-30T11:37:43.763 回答