我有两张桌子:
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的国家/地区为国家/地区。
如何找到每个国家/地区的TOTAL人口?例如,国家1的边境国家的总人口将是30 + 20或50,因为它与国家3和国家2接壤。
我尝试过使用联接和总结,但我仍然不知道如何为每个国家/地区找到这个值。有任何想法吗?谢谢!
答案 0 :(得分: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
答案 1 :(得分: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 |
-------------------------------------------