嘿,我被这个问题难住了,仔细考虑了一下,似乎无法接受。
我有三个表,帐户,供应商和分数
一个账户有很多供应商,一个供应商有很多分数。
我想做的是显示与帐户相关的两周内已更改或创建的所有分数。我不想拉整个数据库,因为它有超过 200 万行代码,所以我想让计算由 sql 执行。
麻烦在于制定一个清晰的 sql 语句。
这是我的想法。
sql=""
scores = ActiveRecord::Base.connection.execute(sql)
@scorecards = []
@scorecards {|sc| sc << scores}
这样我就可以将所有结果保存在一个数组中,并且不能从那里使用它们。
我的 sql 语句如下所示:
SELECT * FROM sms_development.scores WHERE DATE(created_at) = CURDATE() - INTERVAL 14 DAY AND CURDATE() OR DATE(updated_at) = CURDATE() - INTERVAL 14 DAY AND CURDATE();
现在这是我感到困惑的地方,我必须为每个记分卡运行此语句,然后将其与供应商表中的 score_id 匹配,然后将供应商 ID 与帐户表中的供应商 ID 匹配。
在 SQL 查询中完成此任务的最佳方法是什么?抱歉,如果这是一个简单的问题,我是 MySQL 新手。这似乎会变得多毛。