1

我以前做得很好,但我忘了怎么做。

我有一个学校表,每个学校都有一个 ID 和名称。

我有另一个学生表,每个表都有一个 school_id 外键。

我想写一个查询,它会返回一个学校列表和我记录在案的学生人数;像这样的东西:

School1 - 319
School2 - 166
School3 - 120

如果它可以在 Rails 中优雅地完成而不诉诸原始 SQL,那就太好了!

4

3 回答 3

1

在 SQL 中,您可以这样做:

SELECT s.ID, COUNT(*)
FROM schools s
INNER JOIN students ss ON ss.schoolID = s.id
GROUP BY s.ID

(关于rails部分我帮不了你,对不起)。

于 2013-11-12T18:42:11.840 回答
0

试一试:

SELECT s.schoolName, COUNT(st.id) 
FROM Schools s
JOIN Students st
  ON st.school_id = s.school_id
GROUP BY s.school_id
于 2013-11-12T18:43:35.833 回答
0

对我来说没有轨道点:

SELECT
school_name, count(*)

FROM
schools

LEFT JOIN
students
USING(school_id)

GROUP BY
school_id
于 2013-11-12T18:42:31.297 回答