今天遇到了一个问题,查了一下SQL的执行顺序。
http://www.blogjava.net/youling/archive/2009/03/06/243177.html
但是,还是没有解决问题。SQL如下:
update vip set lastlevelmodifieddate=b.adjustdate from vip a, (
select vipno, min(adjustdate) as adjustdate from vipleveladjustmentform
where currentlevel = '1' and lastlevel = '6' and
vipno in (select vipno from vip where joindate < '2010-03-10') group by vipno
)b
where a.vipno=b.vipno
最后,执行的结果居然把在b中不存在的vipno也修改了,不知道为什么?
希望以后找个机会解决,或者有高手也帮忙解决一下。当然,不一定要一模一样的数据库表,大家可以建立两个表,根据相同的原理试一下。例如下面两个表a,b.
CREATE TABLE a
(
pk integer NOT NULL,
vipno text,
createddate timestamp with time zone,
CONSTRAINT a_pkey PRIMARY KEY (pk)
)
WITHOUT OIDS;
ALTER TABLE a OWNER TO postgres;
CREATE TABLE b
(
pk integer NOT NULL,
vipno text,
createddate timestamp with time zone,
CONSTRAINT b_pkey PRIMARY KEY (pk)
)
WITHOUT OIDS;
ALTER TABLE b OWNER TO postgres;
然后插入数据,如下:
insert into a values (1, 'a001', '2010-01-05 19:53:36.208')
insert into a values (2, 'a002', '2010-01-05 19:53:36.208')
insert into b values (1, 'a001', '2010-01-01 19:53:36.208')
然后执行SQL:
update a set createddate=c.adjustdate from a as d, (
select vipno, min(createddate) as adjustdate from b group by vipno
)c
where d.vipno=c.vipno
结果表a中的两条数据的createddate都被修改了,为什么呢?
分享到:
相关推荐
需求:一条SQL语句从多个数据库查询出相关联的结果,输出到客户端 调查:spring框架可以配置多数据源;...以上所述是小编给大家介绍的一条SQL语句查询多个数据库 ,希望对大家有所帮助,如果大家有任何疑问请
以下是一个示例查询: ```sql SELECT sa.SQL_TEXT, sa.SQL_FULLTEXT, sa.EXECUTIONS "执行次数", ROUND(sa.ELAPSED_TIME / 1000000, 2) "总执行时间", ROUND(sa.ELAPSED_TIME / 1000000 / sa.EXECUTIONS,...
在IT行业中,批量导入Excel数据并生成SQL是一种常见的任务,特别是在数据分析、数据库管理以及系统集成等领域。这个过程涉及到了文件处理、数据解析、SQL语句的构造等多个技术环节。下面,我们将详细探讨这个主题。 ...
如`INSERT INTO Orders (OrderID, CustomerID, OrderDate) VALUES (10248, 'VINET', '1996-07-04')`会插入一条新的订单记录。 3. **数据更新**:UPDATE语句用于修改已存在的数据。例如,`UPDATE Employees SET ...
《SQL Anywhere Studio 9开发指南》是一本详细介绍如何在SQL Anywhere Studio 9环境中进行数据库开发的书籍。这本书提供了大量的代码示例,方便读者理解和应用。以下是对书中的主要知识点的详细阐述: 1. 创建...
以上总结的知识点,基于《Oracle SQL》一书的内容,结合了作者Neena Kochhar、Debby Kramer等多位Oracle专家的专业见解和技术贡献者们的审阅,旨在为Oracle SQL的学习者提供一条清晰、高效的学习路径。无论是初学者...
例如向 `users` 表中插入一条新记录: ```sql INSERT INTO users (id, name, email) VALUES (1, 'John Doe', 'john@example.com'); ``` - **UPDATE**: 更新现有数据记录。例如更新 `users` 表中某条记录的电子...
如果连接成功,则会输出一条“链接成功”的日志信息;如果发生异常,则打印异常堆栈。 - **main()方法** 主方法用于测试连接是否成功。通过调用`getConnection()`方法来建立连接。 #### 进一步扩展 除了基础的...
留言板功能提供了一个师生交流的平台,学生可以就成绩问题提出疑问,教师可以解答学生的疑问,增加了系统的互动性。 系统细节功能是指在实现基础功能的同时,根据实际需求增加的一些辅助功能,例如成绩统计、打印...
例如,如果在查询编辑器中有多条语句,按F5或使用其他执行方式时,SSMS会一次性执行所有未分号结束的语句。如果只想执行单个语句,确保该语句前后无其他未执行的语句,并将其单独选中。 此外,执行SQL脚本时,SSMS...
当用户访问某条留言时,系统会通过更新SQL数据表增加该留言的访问计数。这通常涉及到一个条件判断和数据更新操作,例如,如果查询到的id存在,就执行计数自增。 在实际的实现过程中,可能会使用如ASP(Active ...
Mybatis,作为一款强大的Java持久层框架,提供了便捷的SQL映射功能,其中包括批量修改的方法。本篇文章将深入探讨如何在Mybatis中利用`<foreach>`标签实现SQL批量修改。 批量更新通常比单条更新更有效率,因为它...
自动提交事务是默认模式,每条DML语句都会被当作一个单独的事务处理。隐式事务在没有显式事务声明的情况下开始一个新的事务,直到遇到COMMIT或ROLLBACK。 批范围的事务是在批处理级别定义的,即一组SQL语句被视为一...
而且在查询某条记录的时候,由于数据量庞大,只能依靠人工一条一条去查,效率极低。采用计算机来管理宿舍和学生信息,大大提高了查询速度,节约了人力物力,达到了预期的要求。 sql脚本我会后续上传,需要的可在我...
最后,关于如何封装断言,我们可以创建一个`Assertion`对象,包含`sql_values_list`和`response_values`列表,用于存储SQL查询结果和接口响应数据。通过`get_sql_data`方法获取SQL数据并添加到列表,通过`get_...
计划,发现 SQL2 的执行计划也是全表扫描,这里 t1.name=的取值为 cc 的返回仅仅 10 条 记录,而 T1 表记录都在 5 千万左右, T2 表在 200 万左右,需要全扫这么大的两个表而获 取仅有的 10 记录吗? 这里又要再次...
映射文件(Mapping)包含具体的SQL语句,每个方法对应一条SQL。在XML文件中,你可以看到如何通过MyBatis的语法来定义动态SQL,如条件查询、排序、分页等。这些SQL语句在运行时会根据传递的参数动态生成,提供了很高...
《HAP框架-PLSQL调用使用手册》是专为使用HAP框架进行PL/SQL调用的开发者设计的一份详细指南。该手册由Chenxinkai编写,最初创建于2016年7月6日,并在7月24日进行了最后更新,版本号为1.0。文档旨在帮助用户理解和...