【问题标题】:SQL join ruby on railsSQL 加入 ruby​​ on rails
【发布时间】:2014-10-14 16:07:42
【问题描述】:

所以我有两个不同的模型,一个叫做 numbers,它的结构是这样的

t.string :number
t.date :texted
t.integer :times
t.timestamps

还有一个叫做用户(我只包括了相关部分)

  t.string :phone_number
  t.timestamps

我需要做的是获取文本日期超过 2 周且时间小于 4 且 t.string :number 不等于用户表中的任何 t.string :phone_number 的所有数字。我需要做某种 sql join 来完成这个吗?

这是我目前所拥有的:

numbers = Onumber.where("texted <= ? AND times<=4",2.week.ago.utc)

【问题讨论】:

    标签: sql ruby-on-rails ruby ruby-on-rails-4


    【解决方案1】:

    是的,left join 更适合这里:

    Onumber.joins(
      'left join users on onumbers.number = users.phone_number'
    ).where(
      'users.phone_number is null and onumber.times <= 4 and onumber.texted < ?', 2.weeks.ago.utc
    ) 
    

    这将为您提供所有不在users.phone_numbertexted 中且times 值小于或等于4 的数字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-06
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      • 2020-01-24
      相关资源
      最近更新 更多