• mysql中insert into select from的使用


    如何在mysql从多个表中组合字段然后插入到一个新表中,通过一条sql语句实现。具体情形是:有三张表a、b、c,现在需要从表b和表c中分别查几个字段的值插入到表a中对应的字段。对于这种情况,我们可以使用如下的语句来实现:

    例如:

    两种表结构一样:

    所以需要将user表数据同步到T-user中使用语句:

    INSERT INTO t_user SELECT * FROM USER  就可以了

    可以看出已经同步了,如果两个表结构不一样呢:

    例如:

    CREATE TABLE `tr_user` (
      `sname` varchar(255) DEFAULT NULL,
      `sage` int(11) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    CREATE TABLE `user` (
      `name` varchar(255) DEFAULT NULL,
      `age` int(11) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8

    执行语句为:

    INSERT INTO tr_user (sname, sage) 
    SELECT 
      NAME AS sname,
      age AS sage 
    FROM
      USER 
    INSERT INTO tr_user (sname, sage) 
    SELECT 
      NAME ,
      age  
    FROM
      USER 
      `tr_user`

    第二种也是可以的

    如果是多表呢:

    就需要新建一个试图来进行:

         INSERT INTO a(field1,field2) SELECT * FROM(SELECT f1,f2 FROM b JOIN c) AS tb     


    其中f1是表b的字段,f2是表c的字段,通过join查询就将分别来自表b和表c的字段进行了组合,然后再通过select嵌套查询插入到表a中,
    这样就满足了我们这个场景了,如果需要不止2个表,那么可以多个join的形式来组合字段。需要注意的是嵌套查询部分最后一定要有设置表别名
  • 相关阅读:
    理解AJAX工作原理 构建网站的有效方法()
    吃大亏的SQL
    Global
    jQuery插件jTemplates(模板
    distinct吃亏记
    事件和委托的编译代码
    星期划分
    理解AJAX工作原理 构建网站的有效方法(5)
    理解AJAX工作原理 构建网站的有效方法(2)
    我比较笨系列2.《委托》将方法绑定到委托
  • 原文地址:https://www.cnblogs.com/xiufengchen/p/10851757.html
Copyright © 2020-2023  润新知