Rails更好的连接查询解决方案

时间:2015-10-18 18:11:54

标签: ruby-on-rails-4 join activerecord

这个查询有更好的解决方案吗?

Video.where.not(id: Video.joins(:categories).where(categories: { id: [20,21,22]}).select(:id))

对我来说,这似乎是一种矫枉过正的查询,但我不知道如何编写更好的解决方案。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

除非我想要你的查询要做什么,否则为什么不使用内部查询呢?或者您是否遇到视频并不总是有类别的情况?

内部查询:

Video.joins(:categories).where.not(categories: { id: [20,21,22]})

如果视频不具有类别:

Video.includes(:categories).where.not(categories: { id: [20,21,22]})