Ciężko mi jest sformułować z czym mam problem więc postaram się opisowo

Jest baza z 10 tabelami. Wśród nich znajduja się tabele :
countries #panstwa
CREATE TABLE IF NOT EXISTS `baza`.`countries` ( `country_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'ID of Country' , `country_code` VARCHAR(3) CHARACTER SET 'utf8' COLLATE 'utf8_bin' NOT NULL COMMENT 'ISO Country Code' , `name_pl` VARCHAR(40) CHARACTER SET 'utf8' COLLATE 'utf8_bin' NULL DEFAULT NULL COMMENT 'Polish translation' , `name_de` VARCHAR(40) CHARACTER SET 'utf8' COLLATE 'utf8_bin' NOT NULL COMMENT 'German translation' , `name_en` VARCHAR(40) CHARACTER SET 'utf8' COLLATE 'utf8_bin' NOT NULL COMMENT 'English translation' , PRIMARY KEY (`country_id`) , UNIQUE INDEX `country_code` (`country_code` ASC) ) ENGINE = MyISAM AUTO_INCREMENT = 29 DEFAULT CHARACTER SET = latin2
cities #miasta
CREATE TABLE IF NOT EXISTS `baza`.`cities` ( `city_id` INT(11) NOT NULL AUTO_INCREMENT , `name` VARCHAR(20) NOT NULL , `language_id` INT(11) NOT NULL , `country_id` INT(11) NOT NULL , `region_id` INT(11) NOT NULL , PRIMARY KEY (`city_id`) , UNIQUE INDEX `name` (`name` ASC) , INDEX `country_id` (`country_id` ASC) , INDEX `region_id` (`region_id` ASC) , INDEX `language_id` (`language_id` ASC) ) ENGINE = MyISAM AUTO_INCREMENT = 1087 DEFAULT CHARACTER SET = latin2
To co chciałbym osignac to dane w postaci relacji między miastami w poszczególnych państwac tzn.
chodzi konkretnie o połczenie komunikacyjne spełniajace takie warunki:
każde miasto z polski jest połaczone z kazdym miastem w kazdym panstwie oprócz polski
każde miasto w każdym państwie (oprócz polski) jest połaczone tylko z polska
Nie wiem czy powinno to być zapytanie do takiej struktury i za kazdym razem generowane dynamicznie, czy powinienem stworzyć widok połaczonych tabel? a moze powinienem stworzyc osobna tabele i wypełnic ja poprzez jakis sktypt php, no nie wiem jak mam ten temat ugryźć

To co chciałbym z tych danych otrzymac już po wyciagnieciu i formatowaniu to np.:
id 1 Warszawa - Berlin (Polska - Niemcy)
id 2 Warszawa - Amsterdam (Polska - Holandia)
ale np.
id n Warszawa - Gdańsk ( Polska - Polska) albo
id n Berlin - Amsterdam (Niemcy - Holandia) tego juz nie chce i to ma być wycięte z wyniku.
Wydaje mi sie że chyba bede musiał zrobić tabele połczeń i je ręcznie albo półautomatycznie potworzyć :/