用一个表中的字段去更新另外一个表中的字段, MySQL 中有相应的 update 语句来支持,不过这个 update 语法有些特殊。看一个例子就明白了。
CREATE TABLE student(
student_id int NOT NULL ,
student_name VARCHAR(30) NOT NULL ,
city_code VARCHAR(10) NULL ,
city_name VARCHAR(50) NULL
);INSERT INTO student VALUES(1 , 'john' , '001' , NULL);
INSERT INTO student VALUES(2 , 'nick' , '002' , NULL);
CREATE TABLE city(
CODE VARCHAR(10) NOT NULL ,
NAME VARCHAR(50) NOT NULL
);INSERT INTO city VALUES('001' , 'beijing');
INSERT INTO city VALUES('002' , 'shanghai');
INSERT INTO city VALUES('003' , 'shenzhen');
有两个表:student & city,现在需要取出 city.name 来更新 student.city_name。两表关联条件是 student.city_code=city.code。
(1)方案一
UPDATE student s ,
city c
SET s.city_name = c. NAME
WHERE
s.city_code = c. CODE;扫描二维码关注公众号,回复: 3210418 查看本文章
(2)方案二、也可以试下面的相关子查询:
UPDATE student s SET city_name =( SELECT NAME FROM city WHERE CODE = s.city_code);