União não é o que você quer. Você deseja usar junções para criar linhas únicas. Não está claro o que constitui uma linha única em suas tabelas e como elas realmente se relacionam umas com as outras e também não está claro se uma tabela terá linhas para cada país em todos os anos. Mas acho que isso vai funcionar:
CREATE VIEW V AS (
SELECT i.country,i.year,p.pop,f.food,i.income FROM
INCOME i
LEFT JOIN
POP p
ON
i.country=p.country
LEFT JOIN
Food f
ON
i.country=f.country
WHERE
i.year=p.year
AND
i.year=f.year
);
A junção esquerda (externa) retornará linhas da primeira tabela, mesmo que não haja correspondências na segunda. Eu escrevi isso assumindo que você teria uma linha para cada país para cada ano na tabela de renda. Se você não fizer isso, as coisas ficam um pouco complicadas, pois o MySQL não possui suporte embutido para FULL OUTER JOINs na última vez que verifiquei. Existem maneiras de simulá-lo, e envolveriam sindicatos. Este artigo aprofunda o assunto:http://www.xaprb.com/blog/2006/05/26/how-to-write-full-outer-join-in-mysql/