mysql中insert与select的嵌套使用方法
2023-06-13 09:15:38 时间
本文讲述了mysql中insert与select的嵌套使用的方法,对于初学MySQL的朋友有一定的借鉴价值。
这里需要实现在mysql从多个表中组合字段然后插入到一个新表中,通过一条sql语句实现该功能需求。具体情形是:有三张表a、b、c,现在需要从表b和表c中分别查几个字段的值插入到表a中对应的字段。对于这种情况,我们可以使用如下的语句来实现:
INSERTINTOdb1_name(field1,field2)SELECTfield1,field2FROMdb2_name
当然,上面的语句比较适合两个表的数据互插,如果多个表就不适应了。对于多个表,我们可以先将需要查询的字段join起来,然后组成一个视图后再selectfrom就可以了,sql代码如下所示:
INSERTINTOa(field1,field2)SELECT*FROM(SELECTf1,f2FROMbJOINc)AStb
其中f1是表b的字段,f2是表c的字段,通过join查询就将分别来自表b和表c的字段进行了组合,然后再通过select嵌套查询插入到表a中,这样就满足了我们这个场景了,如果需要不止2个表,那么可以多个join的形式来组合字段。需要注意的是嵌套查询部分最后一定要有设置表别名,如下:
SELECT*FROM(SELECTf1,f2FROMbJOINc)AStb
即最后的astb是必须的(当然tb这个名称可以随意取),即指定一个别名,否则在mysql中会报如下错误:
ERROR1248(42000):EveryderivedTABLEmusthaveitsownalias
即每个派生出来的新表都必须指定别名才可以的。
相关文章
- mysql connector详解_MySQL Connector 编程
- MySQL快速上手:使用教程(mysql使用教程)
- MySQL中使用Replace函数替换字符串(mysql的替换函数)
- MySQL增加字段:加锁表的技巧(mysql加字段锁表)
- MySQL降级指南:如何在不影响数据库稳定性的情况下降低MySQL的版本。(mysql降级)
- MySQL恢复丢失的表数据(mysql恢复表数据)
- 状态MySQL字段存在状态揭示(mysql字段存在)
- 使用Hive将MySQL完美配置(hive配置mysql)
- 解决MySQL数据库中乱码问题(mysql乱码怎么解决)
- MySQL快速清除重复数据!(mysql清除重复数据)
- MySQL快速开发:实现短期成果(mysql快速开发)
- MySQL中防御SQL注入攻击的方法(mysql中sql注入)
- MySQL中的NODATA问题解析(mysql中nodata)
- MySQL 中Merge的使用方法(mysql 中merge)
- C语言程序设计操作MySQL数据库(c 使用mysql数据库)
- MySQL中的conv函数及其使用方法(mysql 中conv)
- MySQL中buffer的作用及优化方法(mysql中buffer)
- 极速开发APP与MySQL的无缝连接(app 如何连mysql)
- 使用MySQL创建千万条数据实现高效数据存储和查询(mysql中创建千万数据)
- MySQL 三天数据备份与恢复方法简述(mysql 三天数据)
- MySQL无法在指定范围内进行操作(mysql 不在范围内)
- MySQL是否支持事务解密MySQL的事务支持情况(mysql不支持事物吗)