2012-05-03 79 views
0

我在两个数据库中有两个表。数据库1,其名称为具有表地址的db1。数据库2是名称为db2的表格县。从一个表更新记录到其他MySQL非唯一列

的结构如下:

地址:

_id | address | countyID | cityID | stateID | postalCode | countryID 

县:

_id | stateID | countyName 

目前countyID在地址表中有县名。我需要做的是将address.countyID中的值在县中找到并从县表中选择县ID,然后使用县ID更新地址表。

最终结果,addresses.countyID需要具有县ID不是县名。

谢谢,任何帮助将是伟大的。我一直在尝试各种各样的事情。我尝试了简单的WHEREJOIN,但似乎没有任何工作。我使用MySQL作为我的数据库。

回答

0

我刚刚从选择结果创建一个新表。

CREATE TABLE AddressesCounties 
SELECT db1.addresses._id, db1.addresses.address, db2.counties._id, db1.addresses.cityID, db1.addresses.stateID, db1.addresses.postalCode, db1.addresses.countryID 
WHERE db1.addresses.countyID = db2.counties.countyName; 

创建此临时表比创建实际数据要容易一些。这样我可以运行我的SELECT命令并在应用它们之前测试我的结果。

1

你的意思是这样的吗?

UPDATE DB1 SET COUNTYID =(SELECT ID FROM DB2 INNER JOIN DB1 ON DB1.COUNTYID = DB2.ID)

我不知道你的匹配上列在DB2,我越读你的问题,我得到更多的困惑! :)

+0

我必须匹配db1.countyID ON db2.countyName。因此,我将语法更改为:UPDATE DB1 SET COUNTYID =(SELECT ID FROM DB2 INNER JOIN DB1 ON DB1.COUNTYID = DB2.COUNTYNAME) –

+0

是的,应该这样做,只要ID是要使用的列替换DB1.COUNTYID – jonman

相关问题