我有一個模型書有很多副本。查詢和按模型的belongs_to關係排序
副本屬於書,也屬於學校,它有很多副本。
我想查詢與學校關聯的書籍並根據份數進行排序,並且對於如何在當前關係中執行此操作,我有點遺憾。
書模型包含副本的數據,如標題,作者等,副本就像本書的物理記錄。
任何幫助組織這種關係將不勝感激。
我有一個模型書有很多副本。查詢和按模型的belongs_to關係排序
副本屬於書,也屬於學校,它有很多副本。
我想查詢與學校關聯的書籍並根據份數進行排序,並且對於如何在當前關係中執行此操作,我有點遺憾。
書模型包含副本的數據,如標題,作者等,副本就像本書的物理記錄。
任何幫助組織這種關係將不勝感激。
Book.joins(:copies)
.where("copies.school_id = ?", school_id)
.order("COUNT(copies.id)")
這將取決於'書''有'school_id',這是我認爲可能不會感覺......儘管我不確定自己完全瞭解情況,但我可能是錯的。 – 2013-04-10 21:12:54
現在,當我再次閱讀我看到,我可能(可能)誤解了這個問題 – Zippie 2013-04-10 21:16:11
我不能冒昧地給你的ActiveRecord的答案,但這裏是什麼可能是在SQL一個似是而非的答案:
SELECT book.name,
school.id,
COUNT(copy.*) number_of_copies
FROM book
JOIN copy on copy.book_id = book.id
JOIN school on copy.school_id = school.id
GROUP BY school.id,
book.name
ORDER BY number_of_copies
這取決於你的表以某種方式來構成。在我看來,學校不會有書,但副本的書籍,所以我認爲copy
表應該有一個school_id
和book_id
和book
或school
表都不應該有外部引用。
等等,學校有書還是學校有書的副本?這聽起來像是,根據你的數據結構,學校可能有兩種,我很難理解。 – 2013-04-10 21:06:07
可能寫得不好,但我想學校有很多副本通過書 – Zippie 2013-04-10 21:07:36
學校只有副本,其中有書。你看到一本書可以在很多學校中使用,所以爲了建立書本和學校之間的關係,我想我需要一個單獨的模型來完成這個連接。 – spitfire109 2013-04-10 23:58:00