中身のあるコースをリストアップするSQL文

中身のあるコースをリストアップするSQL文

by Toshihiro KITA -
Number of replies: 0
Picture of Translators
とある場所で質問を受けたので、ここに答えを書いておきます。

新たなコースを作成してユーザに提供した後、空っぽのまま放置されていることがある場合、実際にコンテンツのあるコースがどれなのかを調べるには? という質問です。
# 一つ一つコースの中に入って見てみれば分かるわけですが、多数のコースがある場合は大変なので。

Ad-hoc database queries
https://moodle.org/plugins/view.php?plugin=report_customsql
のアドオンをインストールし、実行するSQL文として、

SELECT fullname, shortname, id as courseid, category
FROM {course}
WHERE
(
(id IN (SELECT DISTINCT course FROM {resource}))
OR
(id IN (SELECT DISTINCT course FROM {quiz}))
OR
(id IN (SELECT DISTINCT course FROM {label}))
OR
(id IN (SELECT DISTINCT course FROM {forum} WHERE type <> 'news'))
OR
(id IN (SELECT DISTINCT course FROM {assignment}))
)
AND
id > 1
ORDER BY id

を入力して保存すると、
リソース、小テスト、ラベル、フォーラム(ニュースフォーラム以外)、課題
のどれか一つでも設置してあるコースの一覧が表示されます。
# これらの設置をチェックするだけでは不十分な場合は、ORでつないでいる条件文を増やす必要があります。
Average of ratings: お役立ち度: ★★★★★★★ (1)