2016-06-14 48 views
1

之間的值SQL總和行我有兩個表:共享表

Country 
|-----------------| 
|Code | Population| 
|-----------------| 
| 1 | 10  | 
|-----------------| 
| 2 | 20  | 
|-----------------| 
| 3 | 30  | 
|-----------------| 

Borders 
|---------------------| 
| country1 | country2 | 
|---------------------| 
| 1  | 3  | 
|---------------------| 
| 1  | 2  | 
|---------------------| 
| 2  | 1  | 
|---------------------| 

表的說明:國碼1有10個羣體,國碼2有人口20,國家代碼3有30人口。

國家與代碼1邊界國家3,國家與代碼1也國家邊界2.國家與代碼2國家邊界1.

我如何找到每個國家接壤國家的總人口?例如,1國接壤國家的總人口爲30 + 20或50,因爲它與國家3和國家2接壤。

我試過使用連接和總數,但我仍然不知道如何爲每個國家找到這個值。有任何想法嗎?謝謝!

回答

1

試試這個:

SELECT c1.Code, SUM(c2.Population) 
FROM Country AS c1 
INNER JOIN Borders AS b ON c1.Code = b.country1 
INNER JOIN Country AS c2 OB b.country2 = c2.Code 
GROUP BY c1.Code 
0

加入兩個表

SELECT b.country1, SUM(c.population) AS Population 
FROM country c 
LEFT JOIN borders b ON c.code = b.country2 
GROUP BY b.country1 

和輸出將

------------------------------------------- 
| Code  | Population     | 
------------------------------------------- 
| 1   | 50       | 
------------------------------------------- 
| 2   | 10       | 
-------------------------------------------