如何在INSERT语句中使用SELECT的结果
来源:互联网 发布:市场营销 知乎 编辑:程序博客网 时间:2024/05/29 10:02
有两张表,第一张表session如下:
mysql> desc session;+-----------------------+--------------+------+-----+---------------------+----------------+| Field | Type | Null | Key | Default | Extra |+-----------------------+--------------+------+-----+---------------------+----------------+| sequence | int(11) | | PRI | NULL | auto_increment || application | varchar(255) | YES | | NULL | || sessionType | varchar(255) | YES | | NULL | || descr | varchar(255) | YES | | NULL | || processlayer_sequence | int(11) | YES | | -1 | || product_sequence | int(11) | YES | | -1 | || machineSn | text | YES | | NULL | || action | int(11) | YES | | NULL | || status | int(11) | YES | | 0 | || owner | varchar(64) | YES | | NULL | || message | varchar(255) | YES | | NULL | || alert | int(11) | YES | | 0 | || app_version | varchar(255) | YES | | NULL | || updateTime | timestamp | YES | | CURRENT_TIMESTAMP | || startTime | timestamp | YES | | 0000-00-00 00:00:00 | || completeTime | timestamp | YES | | 0000-00-00 00:00:00 | |+-----------------------+--------------+------+-----+---------------------+----------------+
第二张表processed_data_mgr如下:
mysql> desc processed_data_mgr;+-----------------------+--------------+------+-----+-------------------+----------------+| Field | Type | Null | Key | Default | Extra |+-----------------------+--------------+------+-----+-------------------+----------------+| sequence | int(11) | | PRI | NULL | auto_increment || session_sequence | int(11) | YES | | -1 | || processlayer_sequence | int(11) | YES | | -1 | || product_sequence | int(11) | YES | | -1 | || machineSn | text | YES | | NULL | || descr | varchar(255) | YES | | NULL | || update_time | timestamp | YES | | CURRENT_TIMESTAMP | |+-----------------------+--------------+------+-----+-------------------+----------------+
其中,processed_data_mgr表中的session_sequence,processlayer_sequence,product_sequence,machineSn分别对应于session表中的sequence,processlayer_sequence,product_sequence,machineSn。
现在想要给processed_data_mgr表增加一条记录,其中与session表的sequence=135相关。
很容易想到的办法,就是先后使用SELECT语句和INSERT语句:先用SELECT语句从session表中拿到数据,再用INSERT语句填入processed_data_mgr表中。
用两条SQL语句很麻烦,能不能只用一条语句呢?
可以的,如下所示:
mysql> INSERT INTO processed_data_mgr (session_sequence, processlayer_sequence, product_sequence, machineSn, descr) -> SELECT session.sequence, session.processlayer_sequence, session.product_sequence, session.machineSn, 'descr1' -> FROM session WHERE session.sequence = 135;Query OK, 1 row affected (0.00 sec)Records: 1 Duplicates: 0 Warnings: 0mysql> select * from processed_data_mgr\G*************************** 1. row *************************** sequence: 1 session_sequence: 135processlayer_sequence: 2 product_sequence: 1 machineSn: 1001 descr: descr1 update_time: 2013-04-05 16:05:311 row in set (0.03 sec)
---------------------- 本博客所有内容均为原创,转载请注明作者和出处 -----------------------
作者:刘文哲
联系方式:liuwenzhe2008@qq.com
博客:http://blog.csdn.net/liuwenzhe2008
- 如何在INSERT语句中使用SELECT的结果
- 如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?(
- 【SQL心得】:在含有GROUP BY的SELECT语句中如何显示COUNT()为0的结果
- 如何在mysql存储过程中处理select语句返回的多行结果(用游标)
- 如何在sql/plus中把select语句查询显示出来的结果中的显示字段长度缩小
- sql server2005语句中select如何更改select结果集的列名
- 使用mysqli时,insert 语句与 select语句的区别
- Magento中直接使用SQL语句 select insert update
- 在Insert语句中使用参数
- MySQL中在含有GROUP BY的SELECT语句中显示COUNT()为0的结果
- MySQL中INSERT INTO SELECT的使用
- MySQL中INSERT INTO SELECT的使用
- MySQL中INSERT INTO SELECT的使用
- MySQL中INSERT INTO SELECT的使用
- MySQL中INSERT INTO SELECT的使用
- MySQL中INSERT INTO SELECT的使用
- MySQL中INSERT INTO SELECT的使用
- MySQL中INSERT INTO SELECT的使用
- 从业N年初次用到高等数学:用PL/SQL算IRR
- XML文件在Android中的重要作用(从文件存放形式剖析)
- Compiling Java with makefile
- JRebel+4.0.3破解版
- 手机耳机课
- 如何在INSERT语句中使用SELECT的结果
- fgetcsv()应用
- myeclipse 修改模板
- struts2無法继承json-default的解决方法
- 366. Pull the chestnut out of the fire. 火中取栗
- 计算机科学的领域
- 【笨木头Cocos2dx 039】战争迷雾效果 第02章_先把地图加进来
- 代码大全读书笔记 一二三 章《软件的创建 隐喻 创建的先决条件》
- Emotion英语——感知