2014-08-31 30 views
1

我一直工作在一个访问项目来管理本地的高中足球联赛...如何从2个访问表

显示所有记录我有2个表: tbl_schools,与字段:

[id_school, school_name] 

和 tbl_penalties,与字段:

[id_penalty, school, player, match, card] 

和查询,query_penalties:

SELECT DISTINCTROW tbl_penalties.school, Count(tbl_penalties.school) AS penalties 
FROM tbl_penalties 
GROUP BY tbl_penalties.school; 

任务/我的问题: 我需要一个查询,以显示(在它的第一列)在tbl_schools所有学校(它是第二列)在学校被处罚的次数,和0,如果学校没有任何处罚......

回答

1
SELECT S.school_name 
     ,COUNT(P.school) AS penalties 
FROM tbl_schools S LEFT JOIN tbl_penalties P 
ON S.id_school = P.school 
GROUP BY S.school_name 
SELECT S.school_name 
     ,COUNT(P.school) AS penalties 
FROM tbl_schools S LEFT JOIN tbl_penalties P 
ON S.id_school = P.school 
GROUP BY S.school_name 
+0

'count(*)'将始终返回> 0,它应该是'count(P.id_penalty)'在学校没有时显示0任何惩罚 – FuzzyTree 2014-08-31 18:08:43

+0

真棒,@FuzzTree,计数提示是相当有用的。 – MushTheRookie 2014-08-31 18:26:45