Comment supprimer des lignes dupliquées dans une table et mettre à jour des références dans une autre table à la ligne restante? La duplication ne se produit que dans le nom. Les colonnes ID sont des colonnes d'identité.
supposons que nous avons deux tables doubles code> et data code>. P> Id DoublesId
1 1
2 1
4 Réponses :
Remarque: j'ai pris la liberté de renommer respectivement votre identifiant d'identifiant et de Daid. Je trouve que l'EssinSier fonctionne avec.
Je ne comprends pas moi-même, mais cet exemple de code semble fonctionner sur SQL Server 2008.
Jetez un coup d'œil à celui-ci, j'ai essayé cela, fonctionnant bien S'il vous plaît essayez de me le faire savoir si cela vous a aidé P> Merci P> ~ AAMOD P> P>
Je n'ai pas couru ceci, mais j'espère que cela devrait être correct et assez proche de la finale Soln pour vous rendre là-bas. Faites-moi savoir des erreurs si vous voulez et je vais mettre à jour la réponse.
--updates the data table to the min ids for each name
update Data
set id = final_id
from
Data
join
Doubles
on Doubles.id = Data.id
join
(
select
name
min(id) as final_id
from Doubles
group by name
) min_ids
on min_ids.name = Doubles.name
--deletes redundant ids from the Doubles table
delete
from Doubles
where id not in
(
select
min(id) as final_id
from Doubles
group by name
)
Si vous utilisez MySQL après avoir travaillé pour moi. Je l'ai fait pour 2 étapes
étape 1 -> p> étape 2 -> p>