ciao a tutti, ho un problema con una SELECT un po' complessa. Vado subito al problema, ho due tabelle:
la prima
CREATE TABLE `farma_fidelity` (
`ID_fidelity` int(6) unsigned 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 '',
KEY `ID_fidelity` (`ID_fidelity`),
KEY `numero` (`numero`),
FULLTEXT KEY `nome` (`nome`)
);
e la seconda
CREATE TABLE `farma_punti` (
`id_farmapunti` int(6) NOT NULL auto_increment,
`numero_fidelity` varchar(255) NOT NULL default '',
`data` varchar(10) NOT NULL default '',
`prezzo` varchar(255) NOT NULL default '',
KEY `id_farmapunti` (`id_farmapunti`)
);
nella pagina php ho la seguente query
Codice PHP:
SELECT *, SUM(prezzo) as top, COUNT(DISTINCT(farma_punti.data)) AS avg FROM farma_fidelity INNER JOIN farma_punti ON farma_fidelity.numero = farma_punti.numero_fidelity WHERE farma_fidelity.nome like '$_GET[i]%%' GROUP BY numero
Il mio problema è che con questo tipo di JOIN se nella tabella farma_punti non sono presenti record collegati alla tabella farma_fidelity alcuni record di quest'ultima non vengono selezionati. Ho provato allora ad usare LEFT JOIN che mi dovrebbe estrarre i record tralasciati ma il sistema entra in palla e mi da l'errore "max execution time".
Potreste dirmi se esiste un modo per includere anche tutti i record della tabella farma_fidelity?