2017-08-01 44 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