2016-11-30 47 views
1

这里是我的表“地球”查找共享数据在多个列

http://imgur.com/EIlbKEN

我需要找到所有记录/行,其中人们分享

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

在此查询中,我不能使用任何特定的国家,州或城市名称。因此,有没有我可以使用的查询,这仍然会返回两个或更多共享相同国家,州和城市的人?

回答

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;