diff --git a/docbow_project/docbow/sql.py b/docbow_project/docbow/sql.py index c3d77d9..799e029 100644 --- a/docbow_project/docbow/sql.py +++ b/docbow_project/docbow/sql.py @@ -68,11 +68,10 @@ GET_UNSEEN_DOCUMENTS_SQL = '''SELECT d.id FROM docbow_document AS d INNER JOIN docbow_mailbox AS mb ON mb.outbox = %%s AND mb.document_id = d.id AND mb.owner_id IN %s - LEFT JOIN docbow_seendocument as sd - ON sd.document_id = d.id AND sd.user_id = %%s - LEFT JOIN docbow_deleteddocument AS dd ON - dd.document_id = d.id AND dd.user_id = %%s - WHERE dd.id IS NULL AND sd.id IS NULL AND (d.private = %%s OR (mb.owner_id = %%s AND d.private = %%s)) + WHERE + NOT EXISTS(SELECT 1 FROM docbow_deleteddocument dd WHERE dd.document_id = d.id AND dd.user_id = %%s) + AND NOT EXISTS(SELECT 1 FROM docbow_seendocument sd WHERE sd.document_id = d.id AND sd.user_id = %%s) + AND (d.private = %%s OR (mb.owner_id = %%s AND d.private = %%s)) GROUP BY d.id, d.date ORDER BY d.date ''' @@ -81,9 +80,9 @@ GET_DOCUMENTS_SQL = '''SELECT d.id FROM docbow_document AS d INNER JOIN docbow_mailbox AS mb ON mb.outbox = %%s AND mb.document_id = d.id AND mb.owner_id IN %s - LEFT JOIN docbow_deleteddocument AS dd ON - dd.document_id = d.id AND dd.user_id = %%s - WHERE dd.id IS NULL AND (d.private = %%s OR (mb.owner_id = %%s AND d.private = %%s)) + WHERE + NOT EXISTS(SELECT 1 FROM docbow_deleteddocument dd WHERE dd.document_id = d.id AND dd.user_id = %%s) + AND (d.private = %%s OR (mb.owner_id = %%s AND d.private = %%s)) GROUP BY d.id, d.date ORDER BY d.date''' @@ -93,8 +92,8 @@ GET_TRASH_DOCUMENTS_SQL = '''SELECT d.id INNER JOIN docbow_mailbox AS mb ON mb.outbox = %%s AND mb.document_id = d.id AND mb.owner_id IN %s LEFT JOIN docbow_deleteddocument AS dd ON - dd.document_id = d.id AND dd.user_id = %%s - WHERE dd.soft_delete AND (d.private = %%s OR (mb.owner_id = %%s AND d.private = %%s)) + dd.document_id = d.id AND dd.user_id = %%s AND dd.soft_delete + WHERE (d.private = %%s OR (mb.owner_id = %%s AND d.private = %%s)) GROUP BY d.id, d.date ORDER BY d.date'''