我认为一个例子胜过千言万语。
表:CONTINENTS:
id | continent
---+----------
1 | Africa
2 | America
3 | Asia
4 | Europe
5 | Oceania
表:国家
id | countries | population | continent_id
---+----------------+------------+-------------
1 | Australia | 24500000 | 5
2 | Brazil | 209300000 | 2
3 | Canada | 36600000 | 2
4 | France | 65000000 | 4
5 | Germany | 82100000 | 4
6 | Italy | 59400000 | 4
7 | Japan | 127500000 | 3
8 | South Africa | 56700000 | 1
9 | South Korea | 51000000 | 3
10 | United Kingdom | 66200000 | 4
11 | United States | 324500000 | 2
结果我想:
id | continent | continent_population
---+-----------+---------------------
1 | Africa | 56700000
2 | America | 570400000
3 | Asia | 178500000
4 | Europe | 272700000
5 | Oceania | 24500000
所以,是的,我希望每个大陆的人口都是国家总和的结果,这些国家在另一个表格中。我尝试了很多查询,但没有任何效果。
此外,这个标题可能很糟糕,但我不确定如何说出来。
答案 0 :(得分:0)
试试这个,将两个表continent_id加入id,然后汇总人口,并按大陆分组:
SELECT
CONTINENTS.id,
CONTINENTS.continent,
SUM(COUNTRIES.population) as continent_population
FROM CONTINENTS
LEFT JOIN COUNTRIES ON COUNTRIES.continent_id=CONTINENTS.id
GROUP BY CONTINENTS.id, CONTINENTS.continent