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