Rails Activerecord关系:使用子查询作为SQL select语句的表
发布时间:2020-05-25 05:00:36 所属栏目:MsSql 来源:互联网
导读:有人可以帮我弄清楚如何使用Rails编写以下SQL(我正在使用Rails 4)Activerecord方法?我知道你可以用find_by_sql这样做,但我想保留活动记录关系.这是我正在尝试创建的postGreSQL数据库的sql: SELECT * FROM (SELECT DISTINCT ON(table_a.id) table_a.name as
|
有人可以帮我弄清楚如何使用Rails编写以下SQL(我正在使用Rails 4)Activerecord方法?我知道你可以用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语句. 解决方法使用Active Record界面中的from()方法.例如: @subquery = table_a.select("DISTINCT ON(table_a.id) table_a.name as alias_a,table_b.time asc")
然后在外部查询中使用它: @query = OtherModel.from("(#{@subquery.to_sql}) table_name,other_model_table,etc ...").where(:field => table_name.alias_a) ...etc. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
推荐文章
站长推荐
- sql – 在Teradata中使用COLLECT STATISTICS
- 将默认值传递给Table Valued参数 – SQL Server
- sql – 如何将数据库图从一个服务器移动到另一个
- sql-server-2005 – 以多对多关系查询示例
- SQL Server 存储过程里,bulk insert table from
- MySQL中对表连接查询的简单优化教程
- sql-server – 如何将SQL Server 2005更改为区分
- SQL语句实现SQL Server 2000及Sql Server 2005日
- sql查询出各科成绩最好的学生信息
- sql – 如何在插入select时插入表之前检查重复项
热点阅读
