Disons que j'ai des pommes, des oranges et des melons, et que chacune a une colonne "created_at". Comment est-ce que je construirais une requête ActiveRecord/SQL pour trouver les 10 pommes, oranges et melons les plus récents? Y a-t-il une manière élégante de faire ceci?Sélection parmi plusieurs tables dans Rails
3
A
Répondre
2
Si vous avez ces types dans des tables distinctes, alors je ne pense pas que vous pouvez le faire dans une seule requête SQL.
Vous pouvez trouver ids et les types de documents les plus récents comme celui-ci:
SELECT * FROM
(SELECT 'Apple' AS class, id, created_at FROM apples LIMIT 10
UNION
SELECT 'Orange' AS class, id, created_at FROM oranges LIMIT 10
UNION
SELECT 'Melon' AS class, id, created_at FROM melons LIMIT 10) AS most_recent
ORDER BY created_at
LIMIT 10;
utilisent ensuite ces enregistrements pour chercher des objets particuliers par id.
Mais si vous le pouvez, essayez de stocker tous ces éléments dans une seule table en utilisant le modèle d'héritage de table unique, qui est built-in into rails. Cela fonctionnerait bien si les types partageaient beaucoup de champs. Ensuite, vous pouvez simplement utiliser un seul appel Fruit.find avec order
et limit
pour aller chercher ce que vous voulez.
Rails 2:
Fruit.find(:all, :order => "created_at", :limit => 10)
0
Non testé, mais cela devrait fonctionner
Apples.joins(:oranges).joins(:melons).order("apples.created_at,oranges.created_at,melons.created_at DESC").limit(10)
Questions connexes
- 1. Codeigniter: Sélection parmi plusieurs tables
- 2. Sélectionnez parmi plusieurs tables correspondant à plusieurs critères
- 3. Rails acts_as_taggable_on plusieurs tables
- 4. Sélectionner parmi plusieurs tables où l'on a des valeurs distinctes
- 5. Rails named_scope sur plusieurs tables
- 6. Naviguer parmi plusieurs activités
- 7. MySql: Sélection à partir de plusieurs tables
- 8. ROR: Sélection à partir de plusieurs tables
- 9. Choisissez parmi plusieurs lignes
- 10. Sélection de plusieurs valeurs différentes tables
- 11. Page blanche avec sélection de plusieurs tables
- 12. Sélection parmi les langues CjK sur l'iPhone
- 13. Sélection de données sur plusieurs tables dans MySQL
- 14. Choisissez parmi plusieurs appareils dans XCode
- 15. Mysql Choisissez parmi les différentes tables
- 16. comment insérer dans plusieurs tables dans les rails
- 17. ligne de sélection parmi les dupliqués dans VBA
- 18. Sélection de valeurs à partir de plusieurs tables
- 19. Champ de recherche - Sélection de données provenant de plusieurs tables
- 20. Comment obtenir une valeur unique parmi plusieurs options sélectionnables?
- 21. Enregistrer dans plusieurs tables
- 22. Cliquez pour sélectionner parmi une liste de balises dans jQuery
- 23. Sélection de la première ligne à partir de plusieurs tables
- 24. jquery sélectionnez une classe parmi plusieurs
- 25. Comment sélectionner un enregistrement spécifique parmi les relations Plusieurs-à-plusieurs qui ne contient pas d'élément spécifique dans Rails 2?
- 26. Est-il possible de sélectionner parmi plusieurs tables, ayant leurs noms à la suite d'une sous-requête?
- 27. Rails: Recherche de plusieurs tables à partir d'une requête
- 28. Recherche plein texte pour plusieurs tables dans SQl Server 2005
- 29. Sélectionnez parmi 4 tables avec jointures et IN
- 30. Choisissez parmi des centaines de tables à la fois (.mdb)
-ce que ces types distincts - à savoir avez-vous une pomme, classe orange et melon, ou avez-vous un seul Classe de fruits avec un attribut fruit_name? – Codebeef