gpt4 book ai didi

ruby-on-rails - Rails ActiveRecord 返回相关表中存在 id 的记录

转载 作者:行者123 更新时间:2023-12-01 22:20:16 25 4
gpt4 key购买 nike

我有一个客户端模型和一个产品模型,其中客户端有许多产品,而产品属于一个客户端。

我需要找到一个仅在产品表中有记录时才返回客户的查询

客户表

id |      name
--------------
1 | Company A
2 | Company B
3 | Company C

产品表

id |      name |  client_id
---------------------------
1 | Product A | 1
2 | Product B | 1
3 | Product C | 3
4 | Product D | 3
5 | Product E | 1

我只需要客户 1 3

例如类似

@clients = Client.where("client exists in products")  #something to this effect

最佳答案

最简单但不是最快:

Client.where(:id => Product.select(:client_id).map(&:client_id))

SQL子查询(更快):

Client.where("EXISTS(SELECT 1 from products where clients.id = products.client_id)")

关于ruby-on-rails - Rails ActiveRecord 返回相关表中存在 id 的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14188872/

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