子查询在UPDATE 语句中的应用】的更多相关文章

在UPDATE语句中可以在更新列表中以及WHERE语句使用子查询.下面演示一个将图书的出版日期全部更新为所有图书中的最新出版日期,SQL语句如下: UPDATE T_Book SET FYearPublished=(SELECT MAX(FYearPublished) FROM T_Book) 注意,在MYSQL 中是不支持使用子查询来更新一个列的,所以这个UPDATE 语句无法在MYSQL中执行. 执行完毕查看T_Book表中的内容: FID FNAME FYEARPUBLISHED FCAT…
问题描述 在系统中发现一条执行时间为为44652.060734秒(12.5小时)的慢SQL,SQL语句为: UPDATE ob_internal_task SET OPERATE_STATUS WHERE business_no IN ( SELECT outbound_no FROM ob_internal_orderstatus WHERE wave_no = 'xxxxx' AND outbound_no <> 'xxxxxxxx' ) ; 对于执行计划为: . row ********…
子查询在DELETE 中唯一可以应用的位置就是WHERE 子句,使用子查询可以完成复杂的数据删除控制.其使用方式与SELECT 语句中的子查询基本相同,而且也可以使用相关子查询等高级的特性.下面的SQL语句用来将所有同类书本书超过3 本的图书删除: DELETE FROM T_Book b1 WHERE ( SELECT COUNT(*) FROM T_Book b2 WHERE b1. FCategoryId=b2. FCategoryId )>3 上面的SQL 语句使用相关子查询来查询所有与…
在使用INSERT语句的时候,一般都是使用它向数据库中一条条的插入数据,比如: INSERT INTO MyTable(FId,FName,FAge)VALUES(1,"John",20) 但是有时我们可能需要将数据批量插入表中,比如创建一个和T_ReaderFavorite表结构完全相同的表T_ReaderFavorite2,然后将T_ReaderFavorite 中的输入复制插入到T_ReaderFavorite2表. 首先我们创建T_ReaderFavorite2 表: MYSQ…
在update 中的 where 子句中使用子查询: UPDATE mg_page_log as a  SET  page_num=1 WHERE id in( SELECT id  from mg_page_log WHERE id < 100 GROUP BY visit_id) 会报: You can't specify target table 'a' for update in FROM clause 错误 所以正确的是: UPDATE mg_page_log as a ,( SELE…
嵌套SELECT语句也叫子查询,一个 SELECT 语句的查询结果能够作为另一个语句的输入值.子查询不但能够出现在Where子句中,也能够出现在from子句中,作为一个临时表使用,也能够出现在select list中,作为一个字段值来返回. 1.单行子查询 :单行子查询是指子查询的返回结果只有一行数据.当主查询语句的条件语句中引用子查询结果时可用单行比较符号(=, >, <, >=, <=, <>)来进行比较. 例:select ename,deptno,salfrom…
/* 使用带关联子查询的Update更新     --1.创建测试表 create TABLE Table1     (     a varchar(10),     b varchar(10),     c varchar(10),     CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED     (     a ASC     )     ) ON [PRIMARY] create TABLE Table2     (     a varchar(10…
昨天研发同事问我个问题,UPDATE语句中SET部分列赋值的先后顺序会影响结果么?以前没考虑过这个问题,因为通常我们都会UPDATE时给列赋予一个确定的值,而不是一个依赖于其他列的值. 测试环境: DROP TABLE TB1001; CREATE TABLE TB1001 ( ID INT PRIMARY KEY, C1 INT, C2 INT ); INSERT INTO TB1001 ( ID, C1, C2 ) ,, UNION ,,1; 更新语句为: UPDATE TB1001 END…
--------------输出----------------print 'hello world'--以文本形式输出select 'hello world'--以网格形式输出,也可以设置成以文本形式输出print 'abc'+'cde'print 3+5print 'ab'+5--出错,'ab'不能转换为intprint 'ab'+convert(varchar,5)--输出ab5print '2'+5--输出7,因为'2'能自动转换为整型数据2 ----------------局部变量--…
用户表A,小组表B,小组和用户是多对多关系,中间有个中间表M 已知 小组 id 即teamId ,想知道这个小组中的用户列表信息,可以如下写sql: select * from A a where EXISTS (select m.id from M m where a.id = m.aid and m.bid = (参数teamId)); where 后面 跟 exists (子查询)的意思是,括号里面子查询至少有一条记录时,前面的大的select查询语句才返回结果 此查询语句中涉及了三张表:…