【发布时间】:2015-09-22 04:04:59
【问题描述】:
pry(main)> Loan.joins(:statistics).where(state: <some states>).where.not(statistics: {state: <some other states>}).order(created_at: "desc").last.statistics.map(&:state)
2015-09-21 20:53:54,423|65310|DEBUG|development| - Loan Load (0.9ms) SELECT `loans`.* FROM `loans` INNER JOIN `statistics` ON `statistics`.`loan_id` = `loans`.`id` WHERE `loans`.`state` IN ('started', 'pending_declined') AND (`statistics`.`state` NOT IN ('prequalified', 'conditionally_approved', '4506t_results_uploaded', 'customer_forms_uploaded', 'ready_for_etran', 'etran_verified', 'forms_to_be_verified', 'forms_verified', 'credit_memo_entered', 'loandoc_generated', 'loandoc_completed', 'loandoc_customer_received_need_signatures', 'signatures_checked_and_uploaded', 'boarded')) ORDER BY `loans`.`created_at` ASC LIMIT 1
2015-09-21 20:53:54,426|65310|DEBUG|development| - Statistic Load (0.3ms) SELECT DISTINCT `statistics`.* FROM `statistics` WHERE `statistics`.`loan_id` = 97
=> ["started", "prequalified", "conditionally_approved", "customer_forms_uploaded", "ready_for_etran", "pending_declined"]
所以,也许我不明白这里发生了什么...我要求 SQL 帮我找到一些贷款,这些贷款的统计数据不包含某些值。在这个例子中,我说要忽略统计为prequalified 的任何贷款,但是,正如您从打印输出中看到的那样,Loan#statistics 确实有prequalified,以及我想要的其他几个状态喜欢漏掉。
任何人都可以对此有所了解吗?我已经与它斗争了几个小时,此时我的头在旋转。
【问题讨论】:
标签: mysql sql ruby-on-rails activerecord