Heim >Datenbank >MySQL-Tutorial >MySQL 从一张表update字段到另外一张表中_MySQL

MySQL 从一张表update字段到另外一张表中_MySQL

WBOY
WBOYOriginal
2016-05-30 17:11:281142Durchsuche

先来几个简单的示例

Solution 1:  1列

update student s, city c
  set s.city_name = c.name
 where s.city_code = c.code;

Solution 2:  多个列

update a, b 

set a.title=b.title, a.name=b.name
where a.id=b.id

Solution 3: 子查询

update student s set city_name = (select name from city where code = s.city_code);

我们再来看几个负责写的

例如: 把表 tk_zyt_scenery_order的 字段更新到 t_advs_order中去, 一般可能会这样写:

UPDATE t_advs_order SET
 
 attribute1=(SELECT o.order_state FROM tk_zyt_scenery_order o WHERE o.order_id=`on`),
 
 attribute2=(SELECT o.order_state FROM tk_zyt_scenery_order o WHERE o.order_id=`on`)
 
 WHERE EXISTS (SELECT o.order_state FROM tk_zyt_scenery_order o WHERE o.order_id=`on`);

这样效率比较低下, 优化写法:

UPDATE t_advs_order a INNER JOIN tk_zyt_scenery_order s ON s.order_id=a.`on` SET
 
 a.attribute1=s.order_id,
 
 a.attribute2=s.order_id;

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn