diff --git a/index.js b/index.js index 3ea7bc2..b6dd828 100644 --- a/index.js +++ b/index.js @@ -288,14 +288,15 @@ async function getCategories(db) { async function getTagCloud(db, limit, offset=0) { const tags = db.prepare(` - SELECT count(t.id) as c, t.name - FROM article__tag a_t - LEFT JOIN article a ON a_t.article_id = a.id - LEFT JOIN tag t ON a_t.tag_id = t.id - GROUP BY t.id - ORDER BY c DESC + SELECT name, count FROM ( + SELECT tag_id, COUNT(1) AS count + FROM article__tag + GROUP BY tag_id + ORDER BY count DESC LIMIT @limit OFFSET @offset + ) + INNER JOIN tag on tag_id = tag.id `).all({ limit, offset }) return tags }