Rails - 在WHERE子句中使用SELECT

时间:2013-07-22 17:30:26

标签: ruby-on-rails

我正在尝试根据以下查询创建Rails模型范围:

SELECT * FROM tableA a
INNER JOIN tableB b ON a.id = b.id
WHERE a.id = (SELECT MAX(id) FROM tableB WHERE field = a.field)

我想连接tableA的行只有一个tableB行(最大的一行)。 有可能吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

 TableA
       .joins(:tableB)
       .where("a.id = (SELECT MAX(id) FROM tableB WHERE field = a.field)")

如果您希望joins方法有效,则需要在两个表之间设置association