gpt4 book ai didi

sql - Active Record 查询以匹配每个子集元素

转载 作者:数据小太阳 更新时间:2023-10-29 07:23:03 25 4
gpt4 key购买 nike

在我的 RoR 应用程序中,我有一个类似于此的数据库查找:

Client.joins(:products).where({'product.id' => [1,2,3]})

不幸的是,这将返回所有购买了产品 1、2 或 3 的客户,但我只想返 repo 买了三种产品所有的客户。换句话说,我想编写一个查询来匹配给定集合中的 n 个元素。

有什么优雅的解决方案吗?

最佳答案

这不是很优雅。但它应该转化为所需的 SQL。

Client.joins(:products).
where({'products.id' => [1,2,3]}).
group('users.id').
having('COUNT(DISTINCT products.id) >= 3')

关于sql - Active Record 查询以匹配每个子集元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21854656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com