我正在使用我沒有創建的系統。該系統有3個主表:多個字段報告,在MySql中使用自定義計數
用戶,課程和用戶組。我正在使用一個名爲coursehits的額外表格。
這是一個MySQL數據庫,5.0。數據庫中沒有任何關係,因此只需向課程和用戶表中的用戶組(course_id和user_id)添加條目即可將用戶分配到課程中。同樣,如果他們開始課程,則會進入課程。
我正在計數報告數據的用戶在coursehits和usergroups中的數量。到目前爲止,我有這不一個查詢正確計算如下但這並不正確計算,結果是太高:
SELECT DISTINCT
c.course_name,
COUNT(ug.user_id) AS "Enrolled",
COUNT(ch.user_id) as "Started"
FROM courses c, usergroups ug, coursehits ch, users u
WHERE ch.user_id = u.id
AND ug.user_id = u.id
AND ug.course_id = c.id
AND ch.page_id != 4
GROUP BY 1
之前我做的單獨下面這不工作:
SELECT DISTINCT c.course_name, COUNT(ug.user_id) AS "Enrolled"
FROM courses c, usergroups ug
WHERE ug.course_id = c.id
GROUP BY 1
現在,我試圖在一個查詢中報告每個課程的用戶狀態,我希望這是有意義的。
有爲什麼它必須是一個查詢任何特定的目的是什麼?在SQL中,最好讓兩個查詢分開執行,而不是嘗試以某種奇怪的方式進行組合。 – leafnode 2010-10-06 12:24:13
爲開發者做這件事,我分別做了兩個查詢,他們工作得很好,現在做了三分之一。只是方便我想,以及推動我的SQL界限。 – Mathnode 2010-10-06 12:34:49