1

该数据库仅用于合并两个表,其中一个包含位置,另一个包含纬度和经度值。我想要做的是按位置连接这两个表,以便将纬度和经度值添加到表 1 中。

表格1:

Title:                Location:                          Latitude:       Longitude
pizza shop            london, chelsea, el13 4hr          Null            Null
Phone Shop            Manchester - Derby                 Null            Null
Computer Repair       Birmingham (b70)                   Null            Null


Table 2:

Location             Latitude:          Longitude:
London               53.6658            0.25533
birmingham           54.3665            0.89336
manchester           66.3368            0.25836

表 1 的位置列在某些情况下可以包含使用逗号破折号或多个位置的数据,因此我选择使用全文来匹配第一次匹配的内容并在那里显示经度和纬度值。

表 1 的最终结果应为:

Title:                Location:                          Latitude:       Longitude
pizza shop            London                             53.6658         0.25533
Phone Shop            manchester                         66.3368         0.25836
Computer Repair       birmingham                         54.3665         0.89336

感谢您对此的帮助。

4

2 回答 2

1

你可能会找这个

    select t1.Title , SUBSTRING_INDEX(t1.Location, ' ', 1)as Location , t2.Latitude  , t2.Longitude 
   from Table1 t1
  inner join
  Table2 t2
   on  SUBSTRING_INDEX(t1.Location, ' ', 1) = t2.Location

输出:

TITLE               LOCATION       LATITUDE     LONGITUDE
pizza shop          london         53.6658      0.25533
Computer Repair     Birmingham     54.3665      0.89336
Phone Shop          Manchester     66.3368      0.25836

在这里演示 SQLFIDDLE

withUPDATE语句应该是这样的

    update Table1 t1
        inner join Table2 t2
        on  SUBSTRING_INDEX(t1.Location, ' ', 1) = t2.Location 
    SET t1.Latitude = t2.Latitude ,
        t1.Longitude = t2.Longitude

演示 SQLFIDDLE

于 2013-03-03T17:50:43.717 回答
0
select t1.title, t2.location, t2.latitude, t2.longitude
from table1 t1, table2 t2
where t1.location ilike concat('%', t2.location, '%');
于 2013-03-03T17:29:19.610 回答