我對使用連接和從多個表中進行選擇相當新穎。我已經成功地想出瞭如何根據許多條件從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」,但除此之外它完美地工作,謝謝。 –