2016-04-15 33 views
1

对于我的项目,我有一张学生表和一张学校表。MySQL选择使用组和连接表的计数

一名学生属于一家公司。一所学校有很多学生。

(当学生毕业学生的学校ID分配NULL。)

The student table: 
+----+------------+-----------+------------+ 
| id | first_name | last_name | school_id | 
+----+------------+-----------+------------+ 
The school table: 
+----+------------+------------------------+ 
| id | city_id | name     | 
+----+------------+------------------------+ 

的目标是内部连接这些表,算上学生每个学校,由学生编号顺序。

+0

不要忘了GROUP BY! (步骤1,JOIN,步骤2,GROUP BY,步骤3,ORDER BY) – jarlh

回答

0

考虑下面的SQL查询:

SELECT school.NAME, 
     count(student.id) AS Total_Student 
FROM school 
     LEFT JOIN student 
       ON school.id = student.school_id 
GROUP BY school.id 
ORDER BY Total_Student 
+1

没有按需要的组? – jarlh

+0

结果:在没有GROUP BY的聚合查询中,SELECT列表的表达式#1包含非聚集列... –

+0

是的,我添加了'group by'。我忘了我的错误。 – Manwal