SQL:为指向同一外键的两个不同列选择相同的属性

时间:2017-11-21 18:52:09

标签: mysql sql

我有两个不同的表,一个引用表和一个事务表 例如:参考表:

PersonID CITY
   1      A
   2      A
   3      B
   4      C

交易表:

PersonA   PersonB  Relation
   1         3        23
   2         3        35
   1         4        46
   3         4        53

引用表中的PersonID是事务表中PersonA和PersonB的外键。

我想得到的是:

CityPersonA   CityPersonB  RelationSum
    A              B            58
    A              C            46
    B              C            53

我们有办法通过SQL吗?

1 个答案:

答案 0 :(得分:2)

只需使用两个JOIN和一个GROUP BY

 select a.city, b.city, sum(t.relation)
 from reference a
 join transaction t on t.personA = a.personID
 join reference b on t.personB = b.personID
 group by a.city, b.city