我以前做得很好,但我忘了怎么做。
我有一个学校表,每个学校都有一个 ID 和名称。
我有另一个学生表,每个表都有一个 school_id 外键。
我想写一个查询,它会返回一个学校列表和我记录在案的学生人数;像这样的东西:
School1 - 319
School2 - 166
School3 - 120
如果它可以在 Rails 中优雅地完成而不诉诸原始 SQL,那就太好了!
我以前做得很好,但我忘了怎么做。
我有一个学校表,每个学校都有一个 ID 和名称。
我有另一个学生表,每个表都有一个 school_id 外键。
我想写一个查询,它会返回一个学校列表和我记录在案的学生人数;像这样的东西:
School1 - 319
School2 - 166
School3 - 120
如果它可以在 Rails 中优雅地完成而不诉诸原始 SQL,那就太好了!
在 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