Salve a tutti,
ecco il problema in cui mi sono imbattutto oggi.
Ho due tabelle:
la prima registroclienti con i campi cf e ragionesociale
la seconda pagamentibanca con i campi importo e descrizione
all'interno del campo descrizione, che è formato da 500 caratteri, è quasi sempre indicato il cf ma essendo pagamenti fatti da clienti diversi su banche diverse non è mai scritto nella stessa posizione.
Per trovare i clienti che hanno pagato ho costruito questa query:
SELECT importo, descrizione, cf, ragionesociale FROM registroclienti, pagamentibanca WHERE descrizione LIKE CONCAT('%',cf,'%')
La query funziona e mi estrae i clienti con pagamenti il problema è che essendo le due tabbelle molto grosse (500.000 clienti su 20.000 pagamenti) per completare la query ci vuole moltissimo tempo. C'è un modo più efficente di confrontare le due tabelle? Pensavo di utilizzare un indice fulltext ma da quanto ho letto sul manuale mysql sembra che consenta solo confronti tra i campi indicizzati e una stringa ma non tra due campi.
Qualche idea?