Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Removendo registros SQL duplicados para permitir uma chave exclusiva


Em resposta ao seu comentário, aqui está uma consulta que funciona no MySQL:
delete YourTable
from YourTable
inner join YourTable yt2
on YourTable.product_id = yt2.product_id
and YourTable.id < yt2.id

Isso só removeria linhas duplicadas. A inner join filtrará a última linha de cada produto, mesmo que não existam outras linhas para o mesmo produto.

P.S. Se você tentar criar um alias para a tabela após FROM , o MySQL exige que você especifique o nome do banco de dados, como:
delete <DatabaseName>.yt
from YourTable yt
inner join YourTable yt2
on yt.product_id = yt2.product_id
and yt.id < yt2.id;