gpt4 book ai didi

mysql - 按定制选择 rails 订购

转载 作者:行者123 更新时间:2023-11-29 13:19:41 27 4
gpt4 key购买 nike

我正在将我们的管理系统从 PHP 迁移到 Ruby On Rails。旧系统的一部分使用 SQL 来构建客户列表,然后按最后一次联系的时间对他们进行排序:

    SELECT 
`customer`.*, (
SELECT MAX(`date`)
FROM `customer_contact`
WHERE `customer`.`Customer_ID`=`customer_contact`.`customer_id`
ORDER BY `date` DESC
LIMIT 1
) AS `last_contacted`
FROM
`lead_details`
GROUP BY `customer`.`Company_Name`
ORDER BY `last_contacted`
LIMIT 50

customer 表现在位于 Customer 模型中,customer_contact 现在位于 CustomerCallback 模型中。我想使用 Rails 构建一个类似的列表,最好不使用原始 SQL。大约有 10,000 条客户记录,因此我目前的做法(拉出所有客户,检查他们的最后联系人,然后按此排序数组)效率非常低。

有什么指点吗?

因此,它按照子项的最高日期对客户列表进行排序,然后限制该列表以停止拉取 10,000 条记录,如上面的 SQL。

如果这很难理解,我表示歉意,但很难用语言表达

最佳答案

由于这是自定义的,我建议使用select_rows,例如:

customers = Customer.connection.select_rows("SELECT 
`customer`.*, (
SELECT MAX(`date`)
FROM `customer_contact`
WHERE `customer`.`Customer_ID`=`customer_contact`.`customer_id`
ORDER BY `date` DESC
LIMIT 1
) AS `last_contacted`
FROM
`lead_details`
GROUP BY `customer`.`Company_Name`
ORDER BY `last_contacted`
LIMIT 50")

关于mysql - 按定制选择 rails 订购,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21020921/

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