Salve mi date una mano x favore, ho queste tabelle:
codice:
CREATE TABLE IF NOT EXISTS `setup_lingua` (
`SETUP_LINGUA_id` bigint(10) NOT NULL AUTO_INCREMENT,
`SETUP_LINGUA_etichetta` varchar(100) NOT NULL,
`SETUP_LINGUA_nome` varchar(100) NOT NULL,
`SETUP_LINGUA_posizione` bigint(20) NOT NULL DEFAULT '0',
`SETUP_LINGUA_pubblicato` int(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`SETUP_LINGUA_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
codice:
CREATE TABLE IF NOT EXISTS `news` (
`NEWS_id` bigint(10) NOT NULL AUTO_INCREMENT,
`SETUP_LINGUA_id` bigint(10) NOT NULL DEFAULT '0',
`NEWS_titolo` varchar(100) DEFAULT NULL,
`NEWS_testo` text,
`NEWS_datatime` datetime DEFAULT NULL,
`NEWS_pubblicato` int(1) NOT NULL DEFAULT '0',
`NEWS_posizione` bigint(10) NOT NULL DEFAULT '0',
PRIMARY KEY (`NEWS_id`,`SETUP_LINGUA_id`),
KEY `SETUP_LINGUA_id` (`SETUP_LINGUA_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
ALTER TABLE `news`
ADD CONSTRAINT `news-lingua` FOREIGN KEY (`SETUP_LINGUA_id`) REFERENCES `setup_lingua` (`SETUP_LINGUA_id`) ON DELETE CASCADE ON UPDATE NO ACTION;
inserisco una news e scelgo la lingua di riferimento;
ho bisogno di una query che estrae TUTTE le lingue DIVERSE da quelle gia inserite.
se faccio una query così
codice:
SELECT
setup_lingua.SETUP_LINGUA_id,
setup_lingua.SETUP_LINGUA_nome,
setup_lingua.SETUP_LINGUA_etichetta
FROM
news
INNER JOIN setup_lingua ON (news.SETUP_LINGUA_id = setup_lingua.SETUP_LINGUA_id)
WHERE
news.NEWS_id = 'mio id' AND
setup_lingua.SETUP_LINGUA_pubblicato
ORDER BY
SETUP_LINGUA_posizione
vengono visualizzate tutte le lingue inserite. ma se al posto di = nella join metto <> non funziona. mi da tutte le lingue di cui due volte quelle mancanti.
un'aiuto? Grazie