說我有蘋果,桔子和瓜,並且每個都有一列「created_at」。我將如何構建一個ActiveRecord/SQL查詢來查找最近的10個蘋果,橘子和甜瓜?有沒有一個優雅的方式來做到這一點?從Rails中的多個表中進行選擇
3
A
回答
2
如果你在單獨的表中有這些類型,那麼我不認爲你可以在單個SQL查詢中做到這一點。
你可以找到ID和類型的最近的記錄是這樣的:
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;
然後使用這些記錄的ID來獲取特定對象。
但是,如果可以,請嘗試使用單表繼承模式(這是built-in into rails)將所有這些存儲在單個表中。如果類型共享很多字段,這將工作正常。然後你可以用order
和limit
單個Fruit.find調用來獲取你想要的。
在Rails 2:
Fruit.find(:all, :order => "created_at", :limit => 10)
0
未經測試,但應該工作
Apples.joins(:oranges).joins(:melons).order("apples.created_at,oranges.created_at,melons.created_at DESC").limit(10)
相關問題
- 1. Rails:從多個表中選擇列
- 2. Rails-如何從多個表中選擇
- 3. 從iOS(iPad)中的多個列表中進行選擇
- 4. 從條件爲真的多個表中進行選擇
- 5. 從表中選擇多個行
- 6. 從多個表中選擇
- 7. 從表中選擇多個
- 8. 從多個表中選擇?
- 9. 使用GROUP BY從多個表中進行選擇
- 10. SQL:從多個表格中進行選擇並訂購
- 11. 從Rails中的多個表中選擇求和結果
- 12. 從多個表中選擇多個列
- 13. 從多個表中選擇多個列?
- 14. 從mysql中的多個表中選擇
- 15. 從jquery中的多個元素中進行選擇
- 16. 如何使用Django從一個查詢中的多個表中進行選擇?
- 17. 從表中的多個XML行中選擇單個的XML
- 18. 如何使用字母從多選列表中進行選擇?
- 19. :使用rails中的find_in_batches進行選擇
- 20. Rails的:使用。加入從多個表中選擇()
- 21. 如何從部分依賴的多表中進行選擇?
- 22. MySQL的 - 從在查詢時選擇從多個表中的行多個表
- 23. JOIN的VS選擇從多個表中
- 24. 從一個mysql中選擇多個表
- 25. 從Rails中的多個選擇框中創建一個值
- 26. 如何從mysql表中選擇多行?
- 27. 從MySQL表中選擇多行
- 28. 從不同表中選擇多行
- 29. 從連接表中選擇多行
- 30. 從多個範圍中進行選擇的Mysql查詢
這些是不同類型的 - 即你有一個蘋果,橘子和甜瓜類,或者你有一個帶有fruit_name屬性的水果類? – Codebeef 2010-10-12 08:52:41