有一张桌子,
City[city_id,state_id]
同一个数据库中有另一个表,
Registration[reg_id,city_id]
现在,我已经在“注册”表中添加了一个列,因此它变为如下所示,
Registration[reg_id,city_id,state_id]
但问题是state_id列的值为'0'。那么,如何根据“注册”表的匹配city_id值,从“城市”表中插入“注册”表的state_id列的值。
答案 0 :(得分:1)
这适用于MySQL。在后台,它指示服务器在两个表上进行内连接。
UPDATE Registration r, City c SET r.state_id = c.state_id WHERE r.city_id = c.city_id;
答案 1 :(得分:0)
只要这个查询只执行一次 - 你就可以使用这个效率不高但可读的查询:
UPDATE Registration r
SET state_id = (SELECT state_id
FROM City c
WHERE c.city_id = r.city_id)
答案 2 :(得分:0)
不确定MySQL,但这是如何在Oracle和SQL Server中完成的:
UPDATE Registration r SET state_id = (SELECT state_id FROM City WHERE city_id = r.city_id)