ユニオンはあなたが望むものではありません。結合を使用して単一の行を作成するとします。テーブル内の一意の行を構成するものと、それらが実際に相互にどのように関連しているかは少し不明です。また、毎年1つのテーブルにすべての国の行があるかどうかも不明です。しかし、これはうまくいくと思います:
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
);
左(外部)結合は、2番目のテーブルに一致するものがない場合でも、最初のテーブルから行を返します。これは、所得表に毎年すべての国の行があると仮定して書いています。 MySQLには最後にチェックしたFULLOUTERJOINのサポートが組み込まれていないため、少し厄介なことがない場合。それをシミュレートする方法はいくつかあり、それらには組合が関与します。この記事では、このテーマについて詳しく説明します:http://www.xaprb.com/blog/2006/05/26/how-to-write-full-outer-join-in-mysql/