Unia nie jest tym, czego chcesz. Chcesz używać sprzężeń do tworzenia pojedynczych wierszy. Nie jest jasne, co stanowi unikalny wiersz w twoich tabelach i jak naprawdę są one ze sobą powiązane, a także nie jest jasne, czy jedna tabela będzie miała wiersze dla każdego kraju w każdym roku. Ale myślę, że to zadziała:
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
);
Złączenie lewe (zewnętrzne) zwróci wiersze z pierwszej tabeli, nawet jeśli nie ma dopasowań w drugiej. Napisałem to przy założeniu, że w tabeli dochodów miałbyś wiersz dla każdego kraju dla każdego roku. Jeśli tego nie zrobisz, sprawy stają się trochę nieostre, ponieważ MySQL nie ma wbudowanej obsługi połączeń FULL OUTER JOIN, które ostatnio sprawdzałem. Są sposoby na to, by to zasymulować i obejmowałyby związki. Ten artykuł szczegółowo omawia ten temat:http://www.xaprb.com/blog/2006/05/26/how-to-write-full-outer-join-in-mysql/