【问题标题】:Fetch records from multiple tables by JOIN in rails 2在rails 2中通过JOIN从多个表中获取记录
【发布时间】:2018-02-12 07:49:32
【问题描述】:

我的记录设置如下

UserKycScanResults: id, user_kyc_scan_id, match_name  <- belongs to UserKycScan
UserKycScan: id, user_id, created_at                  <- belongs to User
User: id, firstname, lastname

我正在尝试编写一个联接,以便我可以找到在 user_kyc_scans 表中具有条目的用户的名字,并且 user_kyc_scan 表条目日期是昨天以及他们在 user_kyc_scan_results 表中的 match_name(如果存在)。

我已经尝试了以下

UserKycScanResult.joins("INNER JOIN user_kyc_scans ON user_kyc_scans.id = user_kyc_scan_results.user_kyc_scan_id
                INNER JOIN users ON users.id = user_kyc_scans.user_id").where("users.name = '#{submitted_first_name}', user_kyc_scans.created_at = #{Date.yesterday} ")

但是这种方法行不通。任何帮助,将不胜感激。 并且 joins 和 where 子句在 rails 2 上不起作用

请给我任何解决方案来解决这个问题

谢谢。

【问题讨论】:

    标签: ruby-on-rails postgresql join activerecord ruby-on-rails-2


    【解决方案1】:

    您的内部连接查询是正确的,但在 Rails 2 中,我们必须通过以下方式传递连接和条件:

    UserKycScanResult.all(:joins => "INNER JOIN user_kyc_scans ON user_kyc_scans.id = user_kyc_scan_results.user_kyc_scan_id 
                                     INNER JOIN users ON users.id = user_kyc_scans.user_id", 
                          :conditions => ["users.name = ? AND user_kyc_scans.created_at = ?", submitted_first_name, Date.yesterday])
    

    参考文档:ruby on rails guides

    快乐编码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 2016-08-04
      • 1970-01-01
      • 1970-01-01
      • 2013-12-17
      • 2018-08-27
      • 2013-12-11
      相关资源
      最近更新 更多