【发布时间】:2014-08-12 07:33:19
【问题描述】:
有人可以帮我弄清楚如何使用 Rails(我正在使用 Rails 4)Activerecord 方法编写以下 SQL 吗?我知道你可以用 find_by_sql 做到这一点,但我想保留活动记录关系。这是我正在尝试创建的 postGreSQL 数据库的 sql:
SELECT * FROM
(SELECT DISTINCT ON(table_a.id) table_a.name as alias_a, table_b.id, table_b.time
FROM table_1
LEFT OUTER JOIN table_b ON table_a.id = table_b.id
ORDER BY table_a.id, table_b.time asc) AS subquery
ORDER BY alias_a asc
对于我的子查询,我有以下内容(生成上面子查询的 sql):
@subquery = table_a.select("DISTINCT ON(table_a.id) table_a.name as alias_a, table_b.time")
@subquery = @subquery.joins("LEFT OUTER JOIN table_b ON table_a.id = table_b.id")
@subquery = @subquery.order("table_a.id, table_b.time asc")
但是,我不知道如何编写使用@subquery 作为外部选择语句的表的选择语句。
【问题讨论】:
标签: sql ruby-on-rails postgresql ruby-on-rails-4 subquery