Mysql 如何使用SQL在一个数据库中搜索与另一个数据库中的值匹配的值

Mysql 如何使用SQL在一个数据库中搜索与另一个数据库中的值匹配的值,mysql,database,Mysql,Database,使用SQL,我想在一个数据库上创建一个类似于循环的东西,该数据库有城市名称,并在另一个数据库中搜索每个城市,如果匹配,我希望将相应的纬度和经度添加到第一个数据库中 我不知道如何在没有PHP的情况下单独使用SQL来实现这一点 其中一个数据库是wordpress数据库,其中有一个名为wp_Posteta的表,有4列: 元id、后id、元密钥、元值 因此,我希望所有的元关键城市都能像这样循环: 从wp_Posteta中选择meta_值,其中meta_key=“城市” 我想在同一个服务器中的另一个数据库

使用SQL,我想在一个数据库上创建一个类似于循环的东西,该数据库有城市名称,并在另一个数据库中搜索每个城市,如果匹配,我希望将相应的纬度和经度添加到第一个数据库中

我不知道如何在没有PHP的情况下单独使用SQL来实现这一点

其中一个数据库是wordpress数据库,其中有一个名为wp_Posteta的表,有4列:

元id、后id、元密钥、元值

因此,我希望所有的元关键城市都能像这样循环:

从wp_Posteta中选择meta_值,其中meta_key=“城市”

我想在同一个服务器中的另一个数据库(称为GEO)中使用此值进行搜索:

ID,城市名称,lat,long

因此,如果第二个数据库中的city_名称与city匹配,我希望将第二个数据库中的lat和long添加到第一个数据库中


任何帮助都将不胜感激。

您可以通过连接操作将您的
Posteta
城市值与您的地理表相匹配。试试这样的

  SELECT pm.post_id, TRIM(pm.meta_value) city_name, 
         geo.lat, geo.lon
    FROM wp_postmeta pm
    LEFT JOIN geo ON TRIM(pm.meta_value) = geo.city_name
   WHERE pm.meta_key='city'
只要表中城市名称的拼写匹配,就会显示城市名称所在的经纬度。请注意,左连接使其显示所有城市,包括没有匹配lat/lon值的城市。如果您不想看到无与伦比的城市,可以将其更改为普通的内部连接


听起来你希望通过插入城市的lats和LON来改变你的Posteta表。这是个坏主意™. postmeta将其所有值存储为字符串。Lat和lon以浮子形式正确存储,有时为双浮子。将坐标更改为字符串不会带来任何好处:您不能对它们进行索引,也不能对它们进行排序,并且必须先将它们转换回来,然后才能使用它们进行计算。相反,在需要这些值时加入地理表。

您使用的是什么数据库系统?您用MySql和SQL Server标记了它,但它们是完全不同的系统。此外,还需要提供相关的信息,如表结构、数据库是否在同一台服务器上以及单个用户是否可以访问这两个服务器。此外,确保区分数据库和表;区别非常重要。不同的数据库??!!这个问题不会泄露任何正确的问题。您需要搜索表格吗??如果是这样的话,你有合适的列来使用搜索吗?通过下面的链接你可能会有一些想法:很抱歉,系统是Mysql。其中有两个数据库,其中一个是wordpress数据库,里面有一个名为wp_postemta的表,所以这些列有meta_id,post_id,meta_键和meta_值。我希望每个值为“city”的meta_键都是meta_值,city是名称,以匹配另一个名为GEO的数据库中的值,该数据库有4列:ID、city、lat和long。希望这有意义。@koushik谢谢,我相信我一开始使用了错误的术语,它是mySql而不是Sql数据库。这是我需要的!!万分感谢!!