Ho delle righe duplicate nelle tabelle.Come eliminare le righe duplicate e aggiornare la tabella
Ho due tabella che sono collegati da una chiave esterna
regions (id)
orders (region_id)
Le regioni hanno duplicato i nomi. Voglio eliminare queste righe duplicate e aggiornare la tabella degli ordini che duplicata chiave esterna sarà ora impostata per lasciare solo il nome esistente nella tabella delle regioni.
Esempio:
regions table:
id name
1 | test
2 | test
3 | foo
orders table:
id region_id
6 | 1
7 | 2
9 | 3
voglio
orders table:
id region_id
6 | 1
7 | 1
9 | 3
regions table:
id name
1 | test
3 | foo
posso ottenere file duplicati con questo SQL:
SELECT name, count(id) as cnt FROM regions
GROUP BY name HAVING cnt > 1
Come posso collegare questo selezionare con tavolo ordine ed eliminare duplicati righe e aggiornare la tabella?
Qual è la logica per quale record salvare dei duplicati? Presumo il primo (cioè la chiave primaria più bassa). Hai accesso a un'altra tecnologia. Probabilmente è più difficile farlo direttamente con MySQL. –
Lukas non è solo eliminare le righe. Devo aggiornare le chiavi esterne! – senzacionale
Mi dispiace, hai ragione ... –