首页 新闻 赞助 找找看

SQL查询条件会影响子查询取值???

0
悬赏园豆:15 [已解决问题] 解决于 2018-04-18 12:31

如下的SQL语句:

SELECT ID, LastModified,
       (SELECT TOP 1 WorkType
        FROM [Works]
        WHERE StartTime >= (Dateadd(hour, 16, (SELECT TOP 1 StartTime FROM [Logs] WHERE Number = T.Number ORDER BY T.[LastModified],ID))
        ORDER  BY [LastModified] DESC, ID) AS WorkType
FROM   [MyTable] AS T
WHERE  ID IN ( 5716, 5715, 5714, 5713, 5712, 5711, 5710, 5709, 5708)

该语句的执行结果,子查询取得的WorkType字段是有正确的值的,但是,如果删除条件中的部分ID,比如删除5712之后的ID,再执行,本来应该有值的记录,WorkType却为空值了。

按说,SQL中的条件只会影响取到的记录数量,不会影响子查询的值呀。这是怎么回事?能否有人给我解惑?多谢了

戒焦戒躁的主页 戒焦戒躁 | 初学一级 | 园豆:15
提问于:2017-02-06 13:46
< >
分享
最佳答案
0

按照SQL 语句的执行顺序,select子句是最后执行的,应该是where子句影响你的查询结果

收获园豆:15
悦光阴 | 老鸟四级 |园豆:2251 | 2017-02-06 14:45

不管执行顺序如何,子查询的取值结果都不应该会受到SQL语句条件的影响啊

戒焦戒躁 | 园豆:15 (初学一级) | 2017-02-07 16:13

@戒焦戒躁: 我的意思是你去掉的条件影响了查询结果

悦光阴 | 园豆:2251 (老鸟四级) | 2017-02-08 12:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册