大家好,又见面了,我是你们的朋友全栈君。
需求:
把一个表中特定的2列查询出来,然后插入到另外一张表,插到另一张表的其他列的值是固定值。
要插入的表,插入全部内容时是这样的:
INSERT INTO `mapping_record` (id,mapping_record.type,sim_id,wx_id,created_time,updated_time,is_available)
VALUES (uuid(),'940ceb86d7c444bd81799edfd4a9beb3','00013543','00013543',1511237080130,NULL,'1')
现在要把sim_id,wx_id从其他表中查询出来,然后其他列按上面的定值,再插入到mapping_record表,sql大致如下:
INSERT INTO `mapping_record` (id,mapping_record.type,sim_id,wx_id,created_time,updated_time,is_available)
SELECT uuid(),'59e5cb4b0c824adea8adb2a87870875d',soe.fd_keyword AS sim_id,mapping.fd_wid AS wx_id,1511237080130,NULL,'1'
FROM wechat_org_mapping mapping,sys_org_element soe
where ...
因为sim_id,wx_id是从其他表中查询出来,连接查询比较复杂,这里就不贴了。但是注意,只要把特殊的列查询出来,指定别名就可以了。
以下2中从一个表复制插入到另一个表简单的情况
1、如果两个表所有的列都相同,把table1的记录复制到table2:
INSERT INTO table2
SELECT * FROM table1;
2、只复制某一列:
INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;
我用的是mysql数据库,Oracle也支持这种写法。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159623.html原文链接:https://javaforall.cn