zoukankan      html  css  js  c++  java
  • mysql update select 从查询结果中更新数据

    在遇到需要update设置的参数来自从其他表select出的结果时,需要把update和select结合使用,不同数据库支持的形式不一样,在mysql中如下:


    update A inner join(select id,name from B) c on A.id = c.id set A.name = c.name;


    根据AB两个表的id相同为条件,把A表的name修改为B的sql语句就如上所。

    复杂的:

    UPDATE user_online_month_atu a
    INNER JOIN (
    SELECT
    user_id,
    sum(c.online_times) as online_times,
    SUM(c.login_count) as login_count,
    Sum(c.view_page_count) as view_page_count,
    LEFT(c.log_date,length(c.log_date) - 2) as date
    FROM
    user_online_time_atu c
    GROUP BY
    c.user_id ,date
    ) b ON a.user_id = b.user_id AND a.`month`=b.date
    SET a.online_time = b.online_times ,a.login_count=b.login_count,a.view_page_count=b.view_page_count
    
    UPDATE user_online_month a
    INNER JOIN (
    SELECT
    user_id,
    sum(c.online_times) as online_times,
    SUM(c.login_count) as login_count,
    Sum(c.view_page_count) as view_page_count,
    LEFT(c.log_date,length(c.log_date) - 2) as date
    FROM
    user_online_time c
    GROUP BY
    c.user_id ,date
    ) b ON a.user_id = b.user_id AND a.`month`=b.date
    SET a.online_time = b.online_times ,a.login_count=b.login_count,a.view_page_count=b.view_page_count;
    
  • 相关阅读:
    软工实践个人总结
    第03组 每周小结 (3/3)
    第03组 每周小结 (2/3)
    第03组 每周小结(1/3)
    第03组 Beta冲刺 总结
    第03组 Beta冲刺 (5/5)
    第03组 Beta冲刺 (4/5)
    第03组 Beta冲刺 (3/5)
    第03组 Beta冲刺 (2/5)
    第03组 Beta冲刺 (1/5)
  • 原文地址:https://www.cnblogs.com/interdrp/p/14106612.html
Copyright © 2011-2022 走看看