【发布时间】:2014-05-15 11:50:05
【问题描述】:
我在用户表状态列中有状态。现在使用查询我想更新用户城市字段中的城市名称。我写了这个查询但没有工作。
1. USER TABLE
state city user_id
AF 1
BF 2
CF 3
2. STATE TABLE
UF Name
AF AAA
BF BBB
CF CCC
2. CITIES TABLE
UF_STATES Name
AF XXX
BF YYY
BF XZZ
查询:
UPDATE `user` SET `city` =
(
select name from cities WHERE uf = (select state from user)
)
【问题讨论】:
-
用户 2 会得到哪个城市?
cities表中有两个。 -
该查询的意思是,返回所有州名并尝试将其放入每个用户的城市字段。
-
你的尝试注定要失败,因为一个州可以拥有多个城市。考虑将 cityID 放入您的用户表中,并将 stateID 放入您的城市表中。
-
state和citiestable 之间应该有关系。