Ciao a tutti,
ho una domanda che mi sta tenendo sveglio da 3 giorni e non sono ancora riuscito a trovare una soluzione.
Io ho 2 tabelle così strutturate:
`materiale_prodotto` (
`id` int(9) unsigned NOT NULL auto_increment,
`name` varchar(30) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
`prodotto` (
`id` int(9) unsigned NOT NULL auto_increment,
`description` text,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
Nella tabella materiale_prodotto ho i seguenti valori per il campo name:
jeans
cotone
lycra
nylon
Nella tabella prodotto ho la descrizione dei prodotti (campo description) nel quale fra le altre cose (es. colore, taglia, etc. ) viene citato anche il materiale(es. jeans, cotone, etc.)
Quello che mi serve è tramite un count o altre soluzioni di veloce esecuzione per il db sapere se nella description dei prodotti presenti nella tabella prodotto è presente uno dei materiali della tabella materiale_prodotto
Se dovessi selezionare solo uno dei materiali la query sarebbe molto semplice:
select count(*) from prodotto where description like "%cotone%"
e così dovrei fare per ogni materiale.
Il mio scopo è ottenere questo con una sola query in modo che come result della query avrò ad esempio:
jeans 38
cotone 35
lycra 10
nylon 23
La struttura delle tabelle non è modificabile per cui non posso aggiungere un nuovo campo nella tabella prodotto con id_materiale per cui questa soluzione è da escludere a priori.
Ho provato a fare una serie di query ma senza risultati esatti.
Qualcuno mi può aiutare.
Sul mio sever gira php 4.4.5 e mysql 4.1.21 ma si accettano soluzioni anche utilizzando php 5 e mysql 5
Ciao
Stefano