MySQL:两表更新(用一个表更新另一个表)的SQL语句

用一个表中的字段去更新另外一个表中的字段, 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;

(2)方案二、也可以试下面的相关子查询:

UPDATE student s SET city_name =( SELECT NAME FROM city WHERE CODE = s.city_code);

参考:https://www.cnblogs.com/nsw2018/p/6398020.html

猜你喜欢

转载自blog.csdn.net/helloxiaozhe/article/details/82261521
今日推荐