tipos subconsultas subconsulta from ejemplos dentro datos consultas anidadas sql ruby-on-rails postgresql ruby-on-rails-4 subquery

subconsultas - Rails Activerecord Relation: utilizando la subconsulta como una tabla para una declaración de selección de SQL



subquery sql server ejemplos (1)

Use el método from() de la interfaz de Active Record.

Por ejemplo:

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

Entonces úsala así en la consulta externa:

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

¿Alguien puede ayudarme a encontrar la forma de escribir el siguiente SQL usando Rails (estoy usando Rails 4) métodos Activerecord? Sé que puedes hacer esto con find_by_sql, pero me gustaría conservar la relación de registro activo. Aquí está el sql para un db postGreSQL que estoy tratando de crear:

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

Para mi subconsulta, tengo lo siguiente (que genera el sql de la subconsulta anterior):

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

Pero no puedo entender cómo escribir una instrucción select que use @subquery como la tabla para la declaración de selección externa.