2015-10-07 29 views
0

我想選擇所有調查的計數,其中的survey.property.address.city == "Garrison"。我有以下型號:使用Rails模型作爲參考的多個連接的SQL查詢

Survey 
    many_to_one :property 

Property 
    one_to_many :surveys 
    many_to_one :address 

Address 
    one_to_many :properties 

如何使用SQL進行查詢?

SELECT count(*) FROM surveys JOIN...

回答

0

假設你的表名爲像鐵軌會說出這些對象,你必須由你的關係所隱含的外鍵:

SELECT 
    COUNT(*) 
FROM 
    surveys 
JOIN 
    properties ON surveys.property_id = properties.id 
JOIN 
    addresses ON addresses.id = properties.address_id 
WHERE 
    addresses.city = 'Garrison' 

而且你的關係很奇怪定義...我假設這只是一個僞代碼版本來表達關係。

編輯:我糾正了第二次連接,因爲我相信我有關係倒退。

+0

謝謝!這使我朝着正確的方向前進。我只是將'JOINS'改爲'JOIN',將雙引號改爲單引號。 – jozwright