Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL加入RubyonRails_Sql_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

SQL加入RubyonRails

SQL加入RubyonRails,sql,ruby-on-rails,ruby,ruby-on-rails-4,Sql,Ruby On Rails,Ruby,Ruby On Rails 4,所以我有两个不同的模型,一个叫做数字,它的结构是这样的 t.string :number t.date :texted t.integer :times t.timestamps 一个叫用户(我只包括相关部分) 我需要做的是抓取所有号码,这些号码的文本日期超过2周,时间少于4次,并且t.string:number不等于users表中的任何t.string:phone_号码。我是否需要执行某种sql连接来实现这一点 这就是我到目前为止所做的: numbers = Onumber.where("t

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

t.string :number
t.date :texted
t.integer :times
t.timestamps
一个叫用户(我只包括相关部分)

我需要做的是抓取所有号码,这些号码的文本日期超过2周,时间少于4次,并且t.string:number不等于users表中的任何t.string:phone_号码。我是否需要执行某种sql连接来实现这一点

这就是我到目前为止所做的:

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

numbers=Onumber.where(“textedYes”)一个
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
) 
Onumber.joins(
'left join onumbers.number=users.phone\u number上的用户'
).在哪里(
'users.phone_number为空且onumber.times
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
)