2017-08-01 77 views
-1

我认为一个例子胜过千言万语。SQL:计算ID和2(或更多)不同表格的总和

表:洲:

id | continent 
---+---------- 
1 | Africa 
2 | America 
3 | Asia 
4 | Europe 
5 | Oceania 

表:COUNTRIES

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

试试这个,连接两个表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 
+0

这一工程!谢谢! – rp17

+0

感谢您让我知道@ rp17很高兴为您工作:) – WJS