Salve,
ho fatto una select per ottenere un determinato risultato:
codice:
SELECT * FROM nome_tabella AS a
WHERE
a.nome_mese = 'gennaio' AND a.data_inserimento < (SELECT min(b.data_inserimento) FROM nome_tabella AS b WHERE b.nome_mese <> 'gennaio' AND b.id_utente = a.id_utente)
Funziona!
A questo punto però, ho la necessità di cancellare le stesse righe ottenute dalla select, quindi ho pensato di fare così:
codice:
DELETE a.* FROM nome_tabella AS a WHERE a.nome_mese = 'gennaio' AND a.data_inserimento < (SELECT MIN(b.data_inserimento) FROM nome_tabella AS b WHERE b.nome_mese <> 'gennaio' AND b.id_utente = a.id_utente)
La cancellazione non funziona e genera questo errore:
codice:
1093 - Table 'a' is specified twice, both as a target for 'DELETE' and as a separate source for data
Googlando sembra che si possa ovviare al problema usando il JOIN ... ma non riesco a venirne a capo.
Qualcuno mi può dare dei suggerimenti?
grazie.