4
I have three tables with structure similar to this:
CREATE TABLE itens_chao (
id int PRIMARY KEY AUTO_INCREMENT,
pos_x int,
pos_y int,
nome varchar(255),
quantidade int,
numero_serie int(11)
);
CREATE TABLE itens_bolsa (
id int PRIMARY KEY AUTO_INCREMENT,
player_id int,
nome varchar(255),
quantidade int,
numero_serie int(11)
);
CREATE TABLE itens_banco (
id int PRIMARY KEY AUTO_INCREMENT,
player_id int,
banco int,
nome varchar(255),
quantidade int,
numero_serie int(11)
);
and with those values:
INSERT INTO itens_chao (pos_x, pos_y, nome, quantidade, numero_serie) VALUES (10, 5, 'Pedra diamante', 3, 17881); --repetido apenas em uma tabela
INSERT INTO itens_chao (pos_x, pos_y, nome, quantidade, numero_serie) VALUES (10, 5, 'Pedra diamante', 3, 17881); --repetido apenas em uma tabela
INSERT INTO itens_chao (pos_x, pos_y, nome, quantidade, numero_serie) VALUES (10, 5, 'Pedra ametista', 3, 17831);
INSERT INTO itens_chao (pos_x, pos_y, nome, quantidade, numero_serie) VALUES (10, 5, 'Moeda ouro', 1, 17833); -- repetido nas 3 tabelas!
INSERT INTO itens_chao (pos_x, pos_y, nome, quantidade, numero_serie) VALUES (10, 5, 'Moeda ouro', 1, 17833); -- repetido nas 3 tabelas!
INSERT INTO itens_bolsa (player_id, nome, quantidade, numero_serie) VALUES (1, 'Moeda prata', 3, 17860); -- repetido em 2 tabelas
INSERT INTO itens_bolsa (player_id, nome, quantidade, numero_serie) VALUES (2, 'Moeda ouro', 3, 17833); -- repetido nas 3 tabelas!
INSERT INTO itens_banco (player_id, banco, nome, quantidade, numero_serie) VALUES (3, 1, 'Moeda prata', 3, 17860); -- repetido em 2 tabelas
INSERT INTO itens_banco (player_id, banco, nome, quantidade, numero_serie) VALUES (3, 1, 'Moeda ferro', 3, 17899);
INSERT INTO itens_banco (player_id, banco, nome, quantidade, numero_serie) VALUES (4, 2, 'Moeda ouro', 1, 17833); -- repetido nas 3 tabelas!
Some items have the "numero_serie" field repeated in the tables, and I would like to delete the repeated ones in all tables, keeping only one. The closest I came was with:
DELETE S1, S2 FROM itens_bolsa S1, itens_chao S2 WHERE S1.numero_serie = S2.numero_serie;
That deletes all repeats from the two selected tables, but does not maintain a value.
Does that answer your question? https://answall.com/questions/166042/comordeletar-todos-duplicados-exceto-um
– user212376
Do not see how bad my criticism, but a modeling error disturbs too much in the future! This makes the bench "sit" in cases of many duplicates. And relational database was not created for unnecessary "repeats" like this one. Why use relational database without normalization? That’s the question you never want to shut up! Licking your elbow with SQL is possible. Anything is possible with SQL. Some way there is.
– Mateus