2012-05-03 77 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

相關問題