在多列中查找共享数据

时间:2016-11-30 15:07:05

标签: sql

这是我的表格“地球”

http://imgur.com/EIlbKEN

我需要查找人们共享的所有记录/行

  • 同一个国家
  • 并且在同一个国家/地区内,他们需要共享同一个州
  • 并且在同一个州内,他们需要共享同一个城市

在此查询中,我不能使用任何特定的国家/地区,州或城市名称。因此,我可以使用一个查询,例如两个或更多人共享同一个国家,州和城市吗?

1 个答案:

答案 0 :(得分:4)

您正在寻找的是自我加入。它看起来像这样:

select t1.personid, t2.personid, t1.country, t1.state, t1.city
from t t1 join
     t t2
     on t1.country = t2.country and t1.state = t2.state and t1.city = t2.city and
        t1.personid < t2.personid;