diff --git a/Database/Migrations/004_MoveOldFlagsToFlagsTable.sql b/Database/Migrations/004_MoveOldFlagsToFlagsTable.sql index 63d42c8..5a6af3c 100644 --- a/Database/Migrations/004_MoveOldFlagsToFlagsTable.sql +++ b/Database/Migrations/004_MoveOldFlagsToFlagsTable.sql @@ -9,15 +9,15 @@ SELECT min_admins.admin_id, TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(sa_admins.flags, ',', numbers.n), ',', -1)) AS flag FROM numbers -JOIN ( +INNER JOIN ( SELECT MIN(id) AS admin_id, player_steamid, server_id FROM sa_admins WHERE player_steamid != 'Console' GROUP BY player_steamid, server_id ) AS min_admins ON 1=1 -JOIN sa_admins ON CHAR_LENGTH(sa_admins.flags) - CHAR_LENGTH(REPLACE(sa_admins.flags, ',', '')) >= numbers.n - 1 - AND min_admins.player_steamid = sa_admins.player_steamid - AND (min_admins.server_id = sa_admins.server_id OR (min_admins.server_id IS NULL AND sa_admins.server_id IS NULL)) +INNER JOIN sa_admins ON CHAR_LENGTH(sa_admins.flags) - CHAR_LENGTH(REPLACE(sa_admins.flags, ',', '')) >= numbers.n - 1 + AND min_admins.player_steamid = sa_admins.player_steamid + AND (min_admins.server_id = sa_admins.server_id OR (min_admins.server_id IS NULL AND sa_admins.server_id IS NULL)) UNION @@ -25,6 +25,9 @@ SELECT (SELECT MAX(id) + 1 FROM sa_admins WHERE server_id IS NULL) AS admin_id, TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(sa_admins.flags, ',', numbers.n), ',', -1)) AS flag FROM numbers -JOIN sa_admins ON CHAR_LENGTH(sa_admins.flags) - CHAR_LENGTH(REPLACE(sa_admins.flags, ',', '')) >= numbers.n - 1 - AND sa_admins.server_id IS NULL -WHERE sa_admins.player_steamid != 'Console'; +INNER JOIN sa_admins ON CHAR_LENGTH(sa_admins.flags) - CHAR_LENGTH(REPLACE(sa_admins.flags, ',', '')) >= numbers.n - 1 + AND sa_admins.server_id IS NULL +WHERE sa_admins.player_steamid != 'Console' +AND EXISTS ( + SELECT 1 FROM sa_admins WHERE id = (SELECT MAX(id) + 1 FROM sa_admins WHERE server_id IS NULL) +);