forse è meglio postare un pò di tabelle 
codice:
// tabella prodotto
CREATE TABLE product (
pr_id int(10) unsigned NOT NULL,
pr_d_id int(10) unsigned NOT NULL,
pr_name varchar(100) binary NOT NULL,
PRIMARY KEY (pr_id)
) TYPE=MyISAM;
// tabella paese
CREATE TABLE product_country (
prc_id int(10) unsigned NOT NULL,
prc_pr_id int(10) unsigned NOT NULL,
prc_country_id int(10) unsigned NOT NULL,
PRIMARY KEY (prc_id)
) TYPE=MyISAM;
// tabella lingue
CREATE TABLE languages (
l_id int(10) unsigned NOT NULL,
l_lang char(3) binary NOT NULL,
l_fulllang varchar(100) binary default NULL,
l_global tinyint(1) unsigned NOT NULL default '0',
PRIMARY KEY (l_id)
) TYPE=MyISAM;
// tabella posizioni
CREATE TABLE product_position (
prp_id int(10) unsigned NOT NULL,
prp_pr_id int(10) unsigned NOT NULL,
prp_country_id int(10) unsigned NOT NULL default '0',
prp_pos int(10) unsigned NOT NULL,
PRIMARY KEY (prp_id)
) TYPE=MyISAM;
per trovare le posizioni in base al paese, sapendo la lingua:
SELECT prp_id, prp_pos FROM product_position LEFT JOIN ip2c__country ON country_id = prp_country_id WHERE country_l_id = {$lingua}
giusta ?
come potrei avere una lista prodotti a prescindere che il posizionamento sia stato assegnato o meno ?