Le tabelle sulle quali avvengono le query sono due: farma_fidelity contiene i dati anagrafici ed è collegata tramite il campo numero con INNER JOIN ad un'altra che si chiama farma_punti che contiene lo storico degli acquisti (quella con più di 32.000 records).
Vi posto i dump delle due tabelle
CREATE TABLE `farma_fidelity` (
`ID_fidelity` smallint(6) NOT NULL auto_increment,
`numero` int(15) NOT NULL default '0',
`nome` varchar(155) NOT NULL default '',
`nascita` varchar(155) NOT NULL default '',
`indirizzo` varchar(155) NOT NULL default '',
`cap` varchar(155) NOT NULL default '',
`localita` varchar(155) NOT NULL default '',
`provincia` varchar(155) NOT NULL default '',
`telefono` varchar(155) NOT NULL default '',
`mobile` varchar(155) default NULL,
`email` varchar(155) NOT NULL default '',
`interessi` varchar(255) default 'N;',
`privacya` char(1) NOT NULL default '',
`privacyb1` char(1) default NULL,
`privacyb2` char(1) default NULL,
`privacyb3` char(1) default NULL,
`privacyc1` char(1) default NULL,
`privacyc2` char(1) default NULL,
`privacyc3` char(1) default NULL,
`stato` char(1) NOT NULL default '',
`data` varchar(10) NOT NULL default '',
`mailsent` char(1) NOT NULL default '',
PRIMARY KEY (`ID_fidelity`),
KEY `ID_fidelity` (`ID_fidelity`),
FULLTEXT KEY `nome` (`nome`)
) ;
--
-- Dump dei dati per la tabella `farma_fidelity`
--
CREATE TABLE `farma_punti` (
`id_farmapunti` smallint(6) NOT NULL auto_increment,
`numero_fidelity` varchar(255) NOT NULL default '',
`data` varchar(10) NOT NULL default '',
`tipo` varchar(255) NOT NULL default '',
`punteggio_vendita` varchar(255) NOT NULL default '',
`cod_prod` varchar(255) NOT NULL default '',
`descr_prod` varchar(255) NOT NULL default '',
`quantita` varchar(255) NOT NULL default '',
`prezzo` varchar(255) NOT NULL default '',
`punteggio` varchar(255) NOT NULL default '',
PRIMARY KEY (`id_farmapunti`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1859 ;
--
-- Dump dei dati per la tabella `farma_punti`
--
questa è la query (c'è anche un'ordinazione per iniziale di parola per cui "WHERE nome like...")
Codice PHP:
$query_content = "SELECT *, SUM(prezzo) as top FROM (farma_fidelity INNER JOIN farma_punti ON farma_fidelity.numero = farma_punti.numero_fidelity) WHERE nome like '$_GET[i]%%' GROUP BY numero_fidelity ORDER BY prezzo DESC";
Vi ringrazio per il vostro aiuto.