ho 3 tabelle, la cui struttura è:
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 ;
quello che dovrei ottenere è la lista dei prodotti e l'imamgine in cui IMG_DEFAULT vale 'Y'
dove l'immagine di default non esiste deve comunque tirarmi fuori il record ma con un valore ovviamente nullo. Io ho fatto questa query:
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
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...
sto provando i vari tipi di JOIN, ma non ne vengo a capo. Sapete dirmi dove sbalgio nel ragionamento?
Grazie mille!