我有两个表:
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 接壤。
我试过使用连接和求和,但我仍然不知道如何找到每个国家/地区的这个值。有任何想法吗?谢谢!
最佳答案
试试这个:
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
关于mysql - SQL 对表之间共享值的行求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37803483/