• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 解析MySQL中INSERT INTO SELECT的使用

解析MySQL中INSERT INTO SELECT的使用

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了mysql insert into,mysql中insert into,insert into select,insert into,insert into语句等相关知识,希望本文的分享对您有所帮助

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MySql insert插入操作的3个小技巧分享
  • mysql insert语句操作实例讲解
  • mysql中insert与select的嵌套使用解决组合字段插入问题
  • mysql中insert与select的嵌套使用方法
  • MySql中使用INSERT INTO语句更新多条数据的例子
  • 逐步分析MySQL从库com_insert无变化的原因
  • 解析MySQL中INSERT INTO SELECT的使用
  • MySQL 关于表复制 insert into 语法的详细介绍

相关文章

  • 2018-12-05关于mysql_field_name()函数的用法的推荐
  • 2018-12-05mysql-MySQL两个表关联查询慢
  • 2018-12-05怎么才能限制SQL Server只能让指定的机器连接
  • 2018-12-05MySQL基本命令
  • 2018-12-05浅谈MySQL JDBC StreamResult通信原理
  • 2018-12-05Mysql5.7.19在Centos7下安装教程详解
  • 2018-12-05用php 读取RSS feed的代码示例
  • 2017-08-07mysql --- join ,where
  • 2018-12-05Oracle启动时出现ORA-32004报错的解决方法
  • 2018-12-05详解mysql函数拼接查询concat函数的使用方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 总结MySQL的高级查询(二)
    • delete archivelog all无法清除归档日志解决方法
    • mysql数据库导出xml的实现方法
    • MySQL性能优化之table_cache配置参数浅析
    • mysql_两台服务器实现双机互备配置并测试数据同步
    • 详解MySQL如何实现创建存储过程并循环添加记录的方法
    • MySQL:reading initial communication packet问题解决方法
    • MySQL几点重要的性能指标计算和优化的方法代码总结
    • MAC系统中添加MYSQL开机启动的方法
    • mysql 性能调优五种方式

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有