Rails Activerecord Relation: utilisation de la sous-requête en tant que table pour une instruction de sélection SQL
Quelqu'un peut-il m'aider à comprendre comment écrire la requête SQL suivante à l'aide de Rails (je suis à l'aide de Rails 4) Activerecord méthodes? Je sais que vous pouvez le faire avec find_by_sql mais je tiens à préserver l'enregistrement actif. Voici le sql pour postGreSQL db que je suis en train de créer:
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
Pour mon sous-requête, j'ai le texte suivant (qui génère le sql de la requête ci-dessus):
@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")
Mais, je ne peux pas comprendre comment écrire une instruction select qui utilise @sous-requête comme la table pour l'instruction de sélection externe.
source d'informationauteur Vee
Vous devez vous connecter pour publier un commentaire.
Utiliser le
from()
méthode à partir de l'Enregistrement Actif de l'interface.Par exemple:
Puis l'utiliser comme ceci dans la requête externe: