1. 语法介绍

有三张表a、b、c,现在需要从表b和表c中分别查几个字段的值插入到表a中对应的字段。对于这种情况,可以使用如下的语句来实现:

INSERT INTO db1_name (field1,field2) SELECT field1,field2 FROM db2_name

上面的语句比较适合两个表的数据互插,如果多个表就不适应了。对于多个表,可以先将需要查询的字段JOIN起来,然后组成一个视图后再SELECT FROM就可以了:

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

其中f1是表b的字段,f2是表c的字段,通过JOIN查询就将分别来自表b和表c的字段进行了组合,然后再通过SELECT嵌套查询插入到表a中,这样就满足了这个场景了,如果需要不止2个表,那么可以多个JOIN的形式来组合字段。

2. 语法错误注意

需要注意的是嵌套查询部分最后一定要有设置表别名,如下:

SELECT * FROM (SELECT f1,f2 FROM b JOIN c) AS tb

即最后的AS tb是必须的(tb这个名称可以随意取),即指定一个别名。每个派生出来的新表都必须指定别名,否则在mysql中会报如下错误:

ERROR 1248 (42000): Every derived TABLE must have its own alias

另外,MySQL中INSERT INTO SELECT不能加VALUES,即不能写成如下形式:

INSERT INTO db1_name(field1,field2) VALUES SELECT field1,field2 FROM db2_name

否则也会报错:You have an error in your SQL syntax

您可能感兴趣的文章:MySQL中insert语句的使用与优化教程mysql insert语句操作实例讲解PHP+MySQL之Insert Into数据插入用法分析MySql中使用INSERT INTO语句更新多条数据的例子mysql 操作总结 INSERT和REPLACEmysql中insert与select的嵌套使用方法正确使用MySQL INSERT INTO语句mysql insert的几点操作(DELAYED,IGNORE,ON DUPLICATE KEY UPDATE )详解MySQL数据库insert和update语句MySQL优化insert性能的方法示例

mysql+inser+select_解析MySQL中INSERT INTO SELECT的使用相关推荐

  1. mysql+inser+select_在MySQL中结合INSERT,VALUES和SELECT

    您可以使用以下语法组合插入,值和选择语句insert into yourFirstTableName(yourColumnName1,yourColumnName2,.......N) select  ...

  2. MySQL中INSERT INTO SELECT的使用

    1. 语法介绍       有三张表a.b.c,现在需要从表b和表c中分别查几个字段的值插入到表a中对应的字段.对于这种情况,可以使用如下的语句来实现: INSERT INTO db1_name (f ...

  3. 语法:MySQL中INSERT INTO SELECT的使用

    1. 语法介绍       有三张表a.b.c,现在需要从表b和表c中分别查几个字段的值插入到表a中对应的字段.对于这种情况,可以使用如下的语句来实现: INSERT INTO db1_name (f ...

  4. oracle中的select into,Oracle中insert into select和select into的用法

    Oracle中insert into select和select into的用法 两张表进行数据的拷贝,最常用的拷贝语句是: insert into select 和select into from ...

  5. mysql中insert into select from的使用

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

  6. mysql write rows_解析MYSQL BINLOG 二进制格式(5)--WRITE_ROW_EVENT

    展开阅读全文 原创:转载请说明出处谢谢! 上接 http://blog.itpub.net/7728585/viewspace-2133188/ 解析MYSQL BINLOG 二进制格式(1)--准备 ...

  7. mysql binlog xid_解析MYSQL BINLOG 二进制格式(7)--Xid_log_event/XID_EVENT

    原创:转载请说明出处谢谢! 上接 http://blog.itpub.net/7728585/viewspace-2133188/ 解析MYSQL BINLOG 二进制格式(1)--准备工作 http ...

  8. Oracle中insert into select和select into的区别

    文章转自:http://www.linuxidc.com/Linux/2012-09/70984.htm 在Oracle中,将一张表的数据复制到另外一个对象中.通常会有这两种方法:insert int ...

  9. mysql的exists解析_mysql中关于exists的深入讲解

    mysql中关于exists的讲解 我认为exists语法是mysql中一个很强大的工具,可以简单地实现某些复杂的数据处理. 下面我谈谈与exists有关的三个方面. all 与 any 首先,看到了 ...

最新文章

  1. WIN7源码安装Apache和PHP注意事项
  2. VMware 虚拟化编程(4) — VDDK 安装
  3. JavaScript与TypeScript总结
  4. Android 观察系统中短信内容的变化(内容观察者)
  5. SqlCommandBuilder
  6. GM9 tile empty issue - ( not figured out )
  7. Linux运维工程师面试-部分题库
  8. 台式计算机驱动程序未被安装,电脑未能成功安装设备驱动程序怎么办
  9. 票价最低10元 北京大兴国际机场线票价方案正式启用
  10. 阿里云HBase推出全新X-Pack服务 定义HBase云服务新标准...
  11. 客户端存储——Storage
  12. 美图秀秀计算机教程,如何用美图秀秀换背景?美图秀秀换背景图文教程-电脑教程...
  13. 用友nc java下载_用友nc的java插件下载
  14. dev c++缺省源
  15. 这款打怪升级的小游戏,7 年前出生于 GitHub 社区,如今在谷歌商店有 8 万人打了满分
  16. lol祖安服务器维护,LOL:最坑的十个大区,艾欧尼亚排第十!如果你在第一赶快换区!...
  17. #一日一图#谁来暖床!
  18. 古希腊神话故事3 :丢卡利翁和皮拉
  19. 学习-编写判断一个正整数是否为素数的函数
  20. Java菜鸟起飞日记-每天五分钟(Hello World)

热门文章

  1. 【nodejs】安装browser-sync 遇到错误提示
  2. sort和qsort函数
  3. word-break|overflow-wrap|word-wrap——CSS英文断句浅析
  4. 深入 JavaScript(4) - new运算符是如何工作的
  5. Android4开发入门经典 之 第七部分:数据存储
  6. 《C语言程序设计》第三章练习与习题答案
  7. Ubuntu 17.10安装Qt 5.10环境与Qt Creator 4.5开发工具(转自linux公社)
  8. MTK 8127平台使用busybox
  9. 博客目录列表(C与Linux部分)
  10. centos 启动一个redis_基于prometheus+grafana体系监控redis缓存服务