47 lines
1.2 KiB
Plaintext
47 lines
1.2 KiB
Plaintext
CREATE VIEW historyView AS
|
|
SELECT
|
|
history.history_id AS id,
|
|
mangas._id AS mangaId,
|
|
chapters._id AS chapterId,
|
|
mangas.title,
|
|
mangas.thumbnail_url AS thumnailUrl,
|
|
chapters.chapter_number AS chapterNumber,
|
|
history.history_last_read AS readAt,
|
|
max_last_read.history_last_read AS maxReadAt,
|
|
max_last_read.history_chapter_id AS maxReadAtChapterId
|
|
FROM mangas
|
|
JOIN chapters
|
|
ON mangas._id = chapters.manga_id
|
|
JOIN history
|
|
ON chapters._id = history.history_chapter_id
|
|
JOIN (
|
|
SELECT chapters.manga_id,chapters._id AS history_chapter_id, MAX(history.history_last_read) AS history_last_read
|
|
FROM chapters JOIN history
|
|
ON chapters._id = history.history_chapter_id
|
|
GROUP BY chapters.manga_id
|
|
) AS max_last_read
|
|
ON chapters.manga_id = max_last_read.manga_id;
|
|
|
|
countHistory:
|
|
SELECT count(*)
|
|
FROM historyView
|
|
WHERE historyView.readAt > 0
|
|
AND maxReadAtChapterId = historyView.chapterId
|
|
AND lower(historyView.title) LIKE ('%' || :query || '%');
|
|
|
|
history:
|
|
SELECT
|
|
id,
|
|
mangaId,
|
|
chapterId,
|
|
title,
|
|
thumnailUrl,
|
|
chapterNumber,
|
|
readAt
|
|
FROM historyView
|
|
WHERE historyView.readAt > 0
|
|
AND maxReadAtChapterId = historyView.chapterId
|
|
AND lower(historyView.title) LIKE ('%' || :query || '%')
|
|
ORDER BY readAt DESC
|
|
LIMIT :limit OFFSET :offset;
|