这个MySQL查询有什么问题?返回随机结果

时间:2012-10-14 10:37:53

标签: mysql sql

我有3张桌子

学校

# id
* max_students
...

日期

# id
* school

学生

# id
* date_id
...
* over_limit
* canceled - DEFAULT NULL
* logged_out - DEFAULT NULL

当用户注册学生时,如果学生人数不高于或等于他/她学校的max_students,我会使用查询来计算注册学生的数量。此结果(0或1)稍后保存到 over_limit 单元格

我使用此查询来计算

SELECT IF(COUNT(S.id) >= 
  (SELECT SC.max_students
  FROM schools SC 
  JOIN dates D ON D.school = SC.id
  WHERE D.id = S.date_id)
,1,0)
FROM students S
WHERE S.date_id = "number from PHP" AND S.logged_out IS NULL AND S.canceled IS NULL

但是有一些不好的事情,因为有时学生被标记为超限,当日期不满时,有时当日期已满,学生没有被标记为超限。

所以我决定记录这些结果。我保存了上面查询的结果,在新查询中选择了COUNT和max_students。在177次出现中,9次查询返回不良结果。

你能解释我的查询中有什么问题吗?

谢谢

0 个答案:

没有答案