如何在不同的表中匹配相同的列值?

时间:2016-12-20 17:26:11

标签: ruby-on-rails

我有两个表,表A是父表,表B是子表。两个表都有“order_number”列。

我想在表A中的“order_number”列中找到与表B中“order_number”列的值匹配的值,然后我将表A记录的“id”保存在另一列中表B记录。

我无法使用activerecord查询来查找匹配的列值。我该怎么做?

1 个答案:

答案 0 :(得分:2)

Activerecord查询以查找匹配的列值:

我认为应该这样做:

TableA.where(order_number: TableB.pluck(:order_number))

然后你可以循环它来更新TableA id的tableB列,如下所示(假设它名为table_a_id)

tablea_records = TableA.where(order_number: TableB.pluck(:order_number))
tablea_records.each do |a|
  b.where(order_number:a.order_number).update_all(table_a_id: a.id)
end