-1
A
回答
2
joins
可用於幾個層次深,例如該活動屬於運營商 Activity.joins(:載體=> {:項目=> {:客戶端=>:角色}})
會生成SQL沿
SELECT * from activities
JOIN carriers on activities.carrier_id = carriers.id
JOIN projects on carriers.id = projects.carrier_id
JOIN clients on projects.client_id = clients.id
JOIN roles on roles.client_id = clients.id
的線,你可以添加你的條件。您需要限定列名稱,即使用projects.id
而不是僅使用id
,以便數據庫知道您需要哪個id
。
0
您的解決方案是不夠好。也許你可以改善它是這樣的:
clients = Client.joins(:roles).where("roles.name in ('responsible', 'replacement')")
client_ids = clients.map(:&id)
projects = Project.where('id in (?) && start=? && stop=?',client_ids,params[:start_time],params[:end_time])
project_ids = projects.map(:&id)
carriers = Carrier.joins(:projects).where('projects.id in (?) AND carriers.has_clients=1', project_ids)
carrier_ids = carriers.map(&:id)
activities = Activity.joins(:carriers).where('carriers.id in (?)', carrier_ids)
相關問題
- 1. ActiveRecord的查詢,連接(Rails的3.1)
- 2. 通過連接表查詢Rails 4 Postgres
- 3. Rails查詢連接和協會
- 4. Rails 3:試圖瞭解連接查詢
- 5. SolrJ查詢,連接查詢
- 6. Rails鏈接查詢
- 7. MySql的連接查詢左連接
- 8. 連接2查詢
- 9. SQL查詢連接
- 10. SQL連接查詢
- 11. 內連接查詢
- 12. mysql連接查詢
- 13. SQL連接查詢 -
- 14. mysql連接查詢
- 15. PostgreSQL連接查詢
- 16. MySQL查詢(連接)
- 17. SQL連接查詢
- 18. SQL查詢連接?
- 19. SQL查詢連接
- 20. 做連接查詢
- 21. 寫查詢連接
- 22. 在連接查詢
- 23. mSQL的連接的查詢
- 24. Rails 3 - 帶連接和計數的複雜查詢,可能的子查詢?
- 25. yii2 +連接查詢的ActiveDataProvider
- 26. 帶連接的Django查詢
- 27. MySQL的左連接查詢
- 28. 簡單的連接查詢
- 29. Postgres的連接查詢
- 30. SQl的左連接查詢
你可以嘗試解釋你想要實現的更好一點嗎? – simonmorley
simonmorley我已經更新了我的問題,如果您有任何疑問,請讓我回答? –
我還是不太瞭解你的問題。你看過這些railscasts中的一個嗎? http://railscasts.com/episodes/202-active-record-queries-in-rails-3 – simonmorley