好的。這是一項家庭作業練習。我嘗試查找所有內容並找不到錯誤。 架構如下:基本的mySQL - 不知道如何顯示所有結果,包括0
course{
course_id
title
dept
}
section{
course_id
semester
year
}
課程表有所有提供的課程。 部分表具有提供過去和未來的課程。
我要列出每門課程已提供多少次。即使它以前從未提供過。 (包括零)。
所以。到目前爲止,我所做的是分別進行每個部分的子查詢,但我在合併這兩者時失敗了。 (這是我需要你幫助的地方。)(旁註:我是新來的sql,對不起,如果查詢看起來痛苦低效)
所以我知道如何獲得所有課程和排序。
SELECT course_id FROM course ORDER BY course_id;
我也知道如何計算所有課程提供的次數。
SELECT course_id, COUNT(course_id)FROM section GROUP BY course_id;
所以我想,使用這兩個子查詢來做出結果!
SELECT * FROM
(
SELECT course_id, COUNT(course_id) FROM section GROUP BY course_id
) AS T1
NATURAL JOIN
(
SELECT course_id FROM course ORDER BY course_id
) as T2;
但是,這忽略了計數爲0的課程。我試過使用IFNULL,但我可能會使用它錯誤。
我只是解決了它使用我的可怕大型查詢。我只需要使用LEFT JOIN。我也試過你的。它只是返回一個課程id。然後我嘗試通過course_id添加組。問題在於它增加了0個案例。 –
不太確定你的意思,我會建議嘗試使用最新的更新答案。無論如何,如果你已經解決了這個問題非常好! – Bryan
基本部分可能有{A A B B C},課程將列出每一個。 {A B C D},我需要將輸出格式化爲{(A,2),(B,2)(C,1)(D,0)}。布萊恩跳過(D,0) –