zoukankan      html  css  js  c++  java
  • 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的形式来组合字段。需要注意的是嵌套查询部分最后一定要有设置表别名
  • 相关阅读:
    设计模式学习总结
    算法时间复杂度和空间复杂度表示
    SQLite简单使用
    接口,组合和继承的想法
    二叉树的学习
    Oracle 常用命令大汇总
    Oracle 最常用功能函数经典汇总
    oracle 常用command
    历史最牛演讲:Oracle总裁Yale演讲全文中英文对照
    深入abstract class和interface
  • 原文地址:https://www.cnblogs.com/xiufengchen/p/10851757.html
Copyright © 2011-2022 走看看