notify: Avoid EXCEPT in SQL statement

Do not use the EXCEPT clause which is unsupported in MySQL. Instead, use
a subquery which is standard-compliant and makes the query easier to
read at the same time.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
This commit is contained in:
Lukas Fleischer 2016-12-12 19:41:16 +01:00
parent 9dd0d92d61
commit fd36125a21

View file

@ -139,12 +139,10 @@ def get_request_recipients(conn, reqid):
def get_tu_vote_reminder_recipients(conn, vote_id):
cur = conn.execute('SELECT Users.Email FROM Users ' +
'WHERE AccountTypeID = 2 ' +
'EXCEPT SELECT Users.Email FROM Users ' +
'INNER JOIN TU_Votes ' +
'ON TU_Votes.UserID = Users.ID ' +
'WHERE TU_Votes.VoteID = ?', [vote_id])
cur = conn.execute('SELECT Email FROM Users ' +
'WHERE AccountTypeID = 2 AND ID NOT IN ' +
'(SELECT UserID FROM TU_Votes ' +
'WHERE TU_Votes.VoteID = ?)', [vote_id])
return [row[0] for row in cur.fetchall()]