私は以前にこれをうまくやったことがありますが、方法を忘れてしまいます。
それぞれ ID と名前を持つ Schools のテーブルがあります。
それぞれ school_id 外部キーを持つ学生の別のテーブルがあります。
学校のリストと、記録にある生徒の数を返すクエリを作成したいと考えています。このようなもの:
School1 - 319
School2 - 166
School3 - 120
生の SQL に頼ることなく、Rails でエレガントに実行できればボーナスです!
私は以前にこれをうまくやったことがありますが、方法を忘れてしまいます。
それぞれ ID と名前を持つ Schools のテーブルがあります。
それぞれ school_id 外部キーを持つ学生の別のテーブルがあります。
学校のリストと、記録にある生徒の数を返すクエリを作成したいと考えています。このようなもの:
School1 - 319
School2 - 166
School3 - 120
生の SQL に頼ることなく、Rails でエレガントに実行できればボーナスです!
SQLでは、次のことができます:
SELECT s.ID, COUNT(*)
FROM schools s
INNER JOIN students ss ON ss.schoolID = s.id
GROUP BY s.ID
(Railsの部分についてはお力になれず申し訳ありません)。
これを試してみてください:
SELECT s.schoolName, COUNT(st.id)
FROM Schools s
JOIN Students st
ON st.school_id = s.school_id
GROUP BY s.school_id
私にとってレールポイントはありません:
SELECT
school_name, count(*)
FROM
schools
LEFT JOIN
students
USING(school_id)
GROUP BY
school_id