PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment puis-je joindre une table dérivée?

L'auteur de la question doit se renseigner sur l'utilisation de base de Rails et d'activerecord avant de se lancer dans SQL. Besoin de comprendre comment Activerecord modélise vos données et comment les utiliser. Déterminez d'abord ce que vous voulez faire dans un langage courant, puis voyez comment vous pouvez utiliser ce qui existe pour le faire.

Rails ne connaît pas la structure de votre table @temp. Il n'a qu'un jeu de résultats et d'après ce que je comprends, AREL ne construit pas de logique à partir du jeu de résultats. Il construit à partir de schémas qu'il extrait pour les modèles d'enregistrement actifs.

Vous ne pouvez pas créer une vue à partir de ces données, donc votre seule option est d'utiliser les options de jointure standard avec les classes activerecord ou de faire du sql personnalisé.

Dans Rails 3, l'algèbre relationnelle ActiveRecord est très avancée et a rendu les requêtes très faciles.

Comment.order("#{Comment.table_name}.created_at desc').limit(5).joins(:posts).order("#{Post.table_name} created_at desc")