设为首页收藏本站
查看: 78|回复: 0

[PHP] MySQL从一张表update字段到另外一张表中_MySQL-mysql教程

[复制链接]

论坛元老

Rank: 6Rank: 6

积分
34274
主题
17031
UID
1347
M币
67
贡献
17176

  • 发表于 2017-5-12 16:11:00 | 显示全部楼层 |阅读模式
    先来几个简单的示例
    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;
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    在我站开通SVIP可同时获得17个站点VIP资源 立即登录 立即注册
    快速回复 返回顶部 返回列表