使用ActiveRecord,如何从只有一个关联记录的数据库中获取所有记录?
例如:我有两个表,table_a在table_b中有许多相关记录。
我想创建一个ActiveRecord查询,它只会获取table_a查询对象,这些查询对象在table_b *中只有一个关联记录。
我该怎么做呢?
谢谢!
答案 0 :(得分:0)
嗯,我不知道在rails中执行此操作的任何简单方法,但我已经将一个原始的SQL查询聚集在一起,您可以使用ActiveRecord :: Base.connection.execute来解决。让我告诉你,这可能是我构建过的最丑陋的查询,很遗憾: - )
SELECT ta.* FROM table_a AS ta INNER JOIN table_b AS tb ON ta.id = tb.table_a_id WHERE
tb.id IN ( SELECT temp.id FROM (
SELECT id, count(*) AS count FROM table_b GROUP BY table_a_id
) AS temp WHERE temp.count=1 ) GROUP BY ta.id;