ho 3 tabelle, la cui struttura è:
quello che dovrei ottenere è la lista dei prodotti e l'imamgine in cui IMG_DEFAULT vale 'Y'codice:-- -- Struttura della tabella `CATEGORIE` -- CREATE TABLE `CATEGORIE` ( `CATEGORIA_ID` int(10) unsigned NOT NULL auto_increment, `CATEGORIA` varchar(255) default NULL, `META` text, `NUOVO` char(1) NOT NULL default 'N', PRIMARY KEY (`CATEGORIA_ID`) ) TYPE=MyISAM AUTO_INCREMENT=9 ; -- -------------------------------------------------------- -- -- Struttura della tabella `PRODOTTI` -- CREATE TABLE `PRODOTTI` ( `PRODOTTO_ID` int(10) unsigned NOT NULL auto_increment, `PREZZO` double unsigned NOT NULL default '0', `MARCA_ID` int(10) unsigned NOT NULL default '0', `CATEGORIA_ID` int(10) unsigned NOT NULL default '0', `FAMIGLIA_ID` int(10) unsigned NOT NULL default '0', `MODELLO` varchar(100) default NULL, `TESTO_HTML` text, `PRODUZIONE_ANNO` varchar(20) default NULL, `CODICE` varchar(50) NOT NULL default '', PRIMARY KEY (`PRODOTTO_ID`) ) TYPE=MyISAM AUTO_INCREMENT=37 ; -- -------------------------------------------------------- -- -- Struttura della tabella `PRODOTTI_IMG` -- CREATE TABLE `PRODOTTI_IMG` ( `PRODOTTO_IMG_ID` int(10) unsigned NOT NULL auto_increment, `PRODOTTO_ID` int(10) unsigned NOT NULL default '0', `IMG_DEFAULT` char(1) NOT NULL default 'N', PRIMARY KEY (`PRODOTTO_IMG_ID`) ) TYPE=MyISAM AUTO_INCREMENT=11 ;
dove l'immagine di default non esiste deve comunque tirarmi fuori il record ma con un valore ovviamente nullo. Io ho fatto questa query:
ma il risultato che ne ottengo è che mi estrae i prodotti giusti, ma nella colonna PRODOTTO_IMG_ID mi ritrovo sempre un valore reale anche quando questo non esiste...codice:SELECT M.MARCA, P.CATEGORIA_ID, P.PRODOTTO_ID, P.MODELLO, P.PREZZO, PI.PRODOTTO_IMG_ID FROM PRODOTTI P LEFT OUTER JOIN MARCHE M ON P.MARCA_ID=M.MARCA_ID RIGHT OUTER JOIN PRODOTTI_IMG PI ON P.PRODOTTO_ID=PI.PRODOTTO_ID WHERE CATEGORIA_ID=6 AND IMG_DEFAULT='Y' ORDER BY M.MARCA, P.MODELLO, P.PREZZO
sto provando i vari tipi di JOIN, ma non ne vengo a capo. Sapete dirmi dove sbalgio nel ragionamento?
Grazie mille!![]()

Rispondi quotando