4

这是我的数据库结构的图片:

观察记录——数据库结构

标准

当我输入Observation时,我将一行输入到Observations0、1 或更多行到Criteria.

我正在尝试编写一个 SQL 语句,它允许我在特定条件下选择最强的 5 位教师

例如,我点击Questioning(可能有IDin 5Criteria_Labels,我想返回 5 位教师(Teacher_IDfrom )的列表,他们在 in 中Observations的行数最多。Criteria_ID = 5Criteria

我试图写的声明如下:

SELECT t.Name AS Teacher_Name
FROM observations o
LEFT JOIN teachers t ON o.Teacher_ID = t.Teacher_ID
LEFT JOIN criteria c ON o.ID = c.Observation_ID
WHERE c.Criteria_ID = 5
ORDER BY COUNT(c.Criteria_ID) DESC
LIMIT 0,5

但是,它似乎只返回了一名工作人员。我不确定我是否完全正确,但希望我是正确的。

任何人都可以帮忙吗?提前致谢,

4

1 回答 1

0
SELECT t.Teacher_ID, t.Name AS Teacher_Name, count(*) as total
FROM observations o
LEFT JOIN teachers t ON o.Teacher_ID = t.Teacher_ID
LEFT JOIN criteria c ON o.ID = c.Observation_ID
WHERE c.Criteria_ID = 5
group by t.Teacher_ID, t.Name
order by total desc
limit 5
于 2012-09-19T19:21:49.230 回答