各位用户为了找寻关于MySQL 从一张表update字段到另外一张表中的资料费劲了很多周折。这里教程网为您整理了关于MySQL 从一张表update字段到另外一张表中的相关资料,仅供查阅,以下为您介绍关于MySQL 从一张表update字段到另外一张表中的详细内容
先来几个简单的示例
Solution 1: 1列
? 1 2 3update
student s, city c
set
s.city_name = c.
name
where
s.city_code = c.code;
Solution 2: 多个列
? 1 2 3 4update
a, b
set
a.title=b.title, a.
name
=b.
name
where
a.id=b.id
Solution 3: 子查询
? 1update
student s
set
city_name = (
select
name
from
city
where
code = s.city_code);
我们再来看几个负责写的
例如: 把表 tk_zyt_scenery_order的 字段更新到 t_advs_order中去, 一般可能会这样写:
? 1 2 3 4 5 6 7UPDATE
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
`);
这样效率比较低下, 优化写法:
? 1 2 3 4 5UPDATE
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;