2012-06-22 16 views
0

假設你有這3種型號:商店,省及地區構建on Rails的用ActiveRecord這種說法2

如果發生這些關係:

店belongs_to的省

省belongs_to的區域

存儲has_one區域通過省

嗯,我想在ActiveRecord內建立這樣的SQL查詢:

SELECT a.*, c.* FROM stores AS a 
LEFT OUTER JOIN provinces AS b ON a.province_id = b.id 
LEFT OUTER JOIN regions AS c ON b.region_id = c.id 
ORDER BY c.name, a.name 

但我仍然無法找到解決方案。

回答

0

一段時間後,我找到了解決辦法:

Store.all :joins => [:province => :region], :order => "regions.name ASC, stores.name asc" 
+0

我希望它可以產生內部聯接,而不是外部聯接就像你在你的問題顯示。 –

+0

是的,INNER JOIN在這種情況下效果更好。 –