我有“位置”数据库和两个表。我的第一个表格是“ uszips”,看起来像:
--id--zipCode--stateCode--latitude--longitude--
1 35004 AL 33.584132 -86.515570
2 35005 AL 33.588437 -86.959727
现在,我有第二个表叫做“ usstates”,并且已经有两个字母的状态代码:
--id--stateCode--
1 AK
2 AL
我无法编写查询来修改“ uszips”表,因为“ stateCode”列为“ stateId”为“ usstates”的外键。例如:
--id--zipCode--stateId--latitude--longitude--
1 35004 2 33.584132 -86.515570
2 35005 2 33.588437 -86.959727
我最好的尝试是:
update uszips set uszips.stateCode=usstates.id
from uszips
join usstates on (uszips.stateCode=usstates.state)
但我收到以下错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from uszips join usstates on (uszips.stateCode=usstates.state)' at line 2
最佳答案
set
子句应位于join
子句之后:
UPDATE uszips
JOIN usstates ON uszips.stateCode = usstates.state
SET uszips.stateCode = usstates.id
关于mysql - 用新的外键值更改SQL表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30003299/