如何将表A与表B进行两次关联以获取起止地点经纬度
关联两张表获取经纬度信息
现有表A包含From(出发地)和To(目的地)字段,数据如下:
| From | To |
|---|---|
| ABC | FG |
表B包含Zip(地点编码)、Lat(纬度)、Long(经度)字段,数据如下:
| Zip | Lat | Long |
|---|---|---|
| ABC | 90 | 80 |
| FG | 45 | 67 |
需要将两张表关联,得到包含From、From_Lat、From_Long、To、To_Lat、To_Long的结果表(如下所示),请求提供对应的SQL关联语法:
| From | From_Lat | From_Long | To | To_Lat | To_Long |
|---|---|---|---|---|---|
| ABC | 90 | 80 | FG | 45 | 67 |
解决方案
通过两次关联表B即可实现:一次匹配出发地的经纬度,一次匹配目的地的经纬度。以下是使用INNER JOIN的SQL语句(若需保留表A中无匹配的记录,可替换为LEFT JOIN):
SELECT a.From, b1.Lat AS From_Lat, b1.Long AS From_Long, a.To, b2.Lat AS To_Lat, b2.Long AS To_Long FROM 表A a INNER JOIN 表B b1 ON a.From = b1.Zip INNER JOIN 表B b2 ON a.To = b2.Zip;
说明:
- 为表A设置别名
a,表B分别设置别名b1(对应出发地)和b2(对应目的地),避免字段冲突 - 通过
a.From = b1.Zip关联出发地的经纬度数据,a.To = b2.Zip关联目的地的经纬度数据 - 使用
AS关键字给字段重命名,生成需求中的结果列名
内容的提问来源于stack exchange,提问作者Akshay Shinde
相关产品推荐
相关产品推荐

