server/sql/tools/characters_item_duplicates_remove.sql
NoFantasy f5e40a5fda [10726] Correct one SQL in tools, table was renamed.
Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-11-16 08:54:18 +01:00

22 lines
1.2 KiB
SQL

DROP TABLE IF EXISTS item_test;
CREATE TABLE item_test
SELECT w.`item_guid`,w.`source`,w.`count` FROM
(SELECT u.`item_guid`,u.`source`,COUNT(u.`item_guid`) as `count` FROM
((SELECT c.`item` as `item_guid`, 'i' as `source` FROM character_inventory c) UNION
(SELECT a.`itemguid` as `item_guid`, 'a' as `source` FROM auction a) UNION
(SELECT m.`item_guid` as `item_guid`, 'm' as `source` FROM mail_items m) UNION
(SELECT g.`item_guid` as `item_guid`, 'g' as `source` FROM guild_bank_item g)
) as u
GROUP BY u.`item_guid`
) as w
WHERE w.`count` > 1;
DELETE FROM auction WHERE itemguid IN (SELECT item_guid FROM item_test WHERE `source`='i');
DELETE FROM mail_items WHERE item_guid IN (SELECT item_guid FROM item_test WHERE `source`='i');
DELETE FROM guild_bank_item WHERE item_guid IN (SELECT item_guid FROM item_test WHERE `source`='i');
DELETE FROM mail_items WHERE item_guid IN (SELECT item_guid FROM item_test WHERE `source`='a');
DELETE FROM guild_bank_item WHERE item_guid IN (SELECT item_guid FROM item_test WHERE `source`='a');
DELETE FROM guild_bank_item WHERE item_guid IN (SELECT item_guid FROM item_test WHERE `source`='m');
DROP TABLE IF EXISTS item_test;