我对使用连接和从多个表中进行选择相当新颖。我已经成功地想出了如何根据许多条件从2个表中获取数据。现在我的问题是,只有在满足其他条件的情况下,我才需要返回计数。这个想法是这样的: 我有一个查询,返回在特定时间处于特定状态的项目数量。我对这个查询:具有多个条件和子选择的SQL查询
SELECT count(*),
e.campus_id,
e.course_id
FROM statuses_history AS sh,
enrolments AS e
WHERE sh.date_added > '2015-08-01 00:00:00'
AND sh.date_added < '2015-08-20 23:59:59'
AND sh.status_id = 57
AND sh.item_id = e.enrolment_id
AND (e.course_id = 2
OR e.course_id =7
OR e.course_id = 8
OR e.course_id = 9)
GROUP BY e.campus_id,
e.course_id;
现在我必须检查它已经在不同的状态,可以说sh.status_id = 50是在57之前,它也没有落入数据中指定的范围。所以我基本上需要以某种方式更改我的查询,以选择它是否曾经在status_id 50中,然后只在找到两个状态时才返回结果。 sh.status_id = 57将被指定的日期绑定。
在此先感谢您的帮助。
很好的答案。尽管你在“AND EXISTS(从statuses_history中选择sh2.status_id”)中犯了一个错误,但我只是添加了“as sh2”,但除此之外它完美地工作,谢谢。 –