diff --git a/database/revisiondaosqlite.cpp b/database/revisiondaosqlite.cpp index 58994d8..7c9e0f1 100644 --- a/database/revisiondaosqlite.cpp +++ b/database/revisiondaosqlite.cpp @@ -129,9 +129,8 @@ std::optional RevisionDaoSqlite::getCurrentForPage(std::string pagenam try { auto query = *db << "SELECT (SELECT username FROM user WHERE id = author), comment, content, " - "strftime('%s',creationtime), page, revisionid FROM revision WHERE page = (SELECT id FROM " - "page WHERE name = ? ) AND revisionid = (SELECT lastrevision FROM page WHERE name = ?)"; - query << pagename << pagename; + "strftime('%s',creationtime), page.name, revisionid FROM revision INNER JOIN page ON revision.page = page.id WHERE page.name = ? AND page.lastrevision = revision.revisionid"; + query << pagename; query >> std::tie(result.author, result.comment, result.content, result.timestamp, result.page, result.revision); } @@ -155,7 +154,7 @@ std::optional RevisionDaoSqlite::getRevisionForPage(std::string pagena auto query = *db << "SELECT (SELECT username FROM user WHERE id = author), comment, content, strftime('%s',creationtime), " - "page, revisionid FROM revision WHERE page = (SELECT id FROM page WHERE name = ? ) AND revisionid = ?"; + "page.name, revisionid FROM revision INNER JOIN page ON revision.page = page.id WHERE page.name = ? AND revisionid = ? "; query << pagename << revision; query >> std::tie(result.author, result.comment, result.content, result.timestamp, result.page, result.revision);