Rails Activerecord关系:使用子查询作为SQL选择语句的表

Vee

有人可以帮我弄清楚如何使用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作为外部select语句表的select语句。

leethax88

使用from()Active Record界面中方法。

例如:

@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")

然后在外部查询中像这样使用它:

@query = OtherModel.from("(#{@subquery.to_sql}) table_name, other_model_table, etc ...").where(:field => table_name.alias_a) ...etc.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails Activerecord关系:使用子查询作为SQL select语句的表

来自分类Dev

Rails,ActiveRecord和子查询

来自分类Dev

Rails,ActiveRecord和子查询

来自分类Dev

Rails ActiveRecord查询选择选择总和

来自分类Dev

Rails查询到SQL语句

来自分类Dev

Rails查询到SQL语句

来自分类Dev

ActiveRecord联接查询并在Rails中选择

来自分类Dev

Rails Activerecord查询选择性包括

来自分类Dev

ActiveRecord联接查询并在Rails中选择

来自分类Dev

将SQL语句转换为Rails ActiveRecord

来自分类Dev

Rails,使用自定义SQL查询填充ActiveRecord模型

来自分类Dev

Rails ActiveRecord选择用法

来自分类常见问题

Rails 5:ActiveRecord或查询

来自分类Dev

Rails中的ActiveRecord查询

来自分类Dev

ActiveRecord Rails高效查询

来自分类Dev

SQL查询多态关系-Rails 4

来自分类Dev

Rails使用ActiveRecord进行通用选择

来自分类Dev

使用 ActiveRecord Rails 优化多个查询

来自分类Dev

使用 Rails 4 进行 ActiveRecord 查询

来自分类Dev

Rails N表关系

来自分类Dev

Ruby on Rails表关系

来自分类Dev

如何在Rails 4中使用Join而不是子查询来编写此ActiveRecord查询

来自分类Dev

Rails视图与ActiveRecord关系的问题

来自分类Dev

在Rails中查询关系的关系

来自分类Dev

使用ActiveRecord在Rails中正确联接表

来自分类Dev

Rails ActiveRecord 删除重复项并更改关系表

来自分类Dev

Rails子查询联接

来自分类Dev

ActiveRecord在Rails的选择查询中输出过多

来自分类Dev

Rails ActiveRecord查询日期范围