Rails查询 - 2个大型模型的单个属性的交集

时间:2016-09-03 22:57:18

标签: ruby-on-rails ruby-on-rails-3 activerecord

所以我有2个模型,ModelOneModelTwo,两者都有my_field属性。我想计算有多少不同的ModelTwo个对象,my_field唯一存在ModelTwo而不是ModelOne.

使用足够小的数据集,我可以编写一个简单的低效函数并获取我需要的数据,但ModelOneModelTwo都有数百万个对象。所以我认为只获得两个表之间共享多少my_field个值的交集计数就足够了,因为从ModelTwo总计数中减去该计数会给我一个我正在寻找的数字

获得此交叉点计数的有效方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以尝试左外连接。有点像这样的东西。

ModelTwo.left_outer_joins(:model_ones).distinct