Questa è la mia situazione:
Ho più database mysql identici, ma con nomi diversi , sullo stesso server.
Esempio:db_01,db_02,db_03 e cosi via.
Voglio eliminare tutti i record di ogni tabella di nome house, presente in ogni DB, che rispettano una certa condizione. VORREI FARE QUESTO CON UNA SOLA QUERY. SO GIA' CHE SI PUO' FARE CON UN LOOP
E UNA QUERY DI DELETE DENTRO PER OGNI DB. MA NON CERCO QUESTO.
VOGLIO CAPIRE SE SI PUO' FARE CON UNA SOLA QUERY.
Ogni database ha la tabella house, e ogni tabella house ha la stessa struttura per ogni DB.
Quindi le tabelle house sono identiche, MA HANNO DATI DIVERSI. SU OGNI DB LAVORANO PERSONE DIVERSE, quindi i dati nella varie tabelle house sono diversi. STESSA STRUTTURA MA DATI DIVERSI.
Ho provato con questa query:
DELETE db_01.house.* , db_02.house.*
FROM db_01.house , db_02.house
WHERE db_01.house.data_reminder < DATE_SUB(CURDATE(),INTERVAL 12 MONTH)
AND
db_02.house.data_reminder < DATE_SUB(CURDATE(),INTERVAL 12 MONTH)
La query non da errori, ma se non viene verificata la condizione AND in una delle tabelle,
non fà nulla, di contro se uso l'OR elimina tutto.
MI servirebbe un modo per dire che ogni condizione WHERE è a se stante, e vale solo per quella tabella.
Ho provato anche questa query
DELETE db_01.house.* , db_02.house.*
FROM db_01.house
LEFT JOIN db_02.house ON db_02.house.data_reminder=db_01.house.data_reminder
WHERE db_01.house.data_reminder < DATE_SUB(CURDATE(),INTERVAL 12 MONTH)
MA questa query agisce solo sulla tabella house di db_01, e non su tutte.
Mi potete aiutare?
Grazie.