首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

NOT EXISTS,该怎么解决

2013-03-06 
NOT EXISTSselectRESOURCE.TYPE, A.FILENAME, A.PATH,a.hashvalue, A.EFFECTIVEDATE from version ALeft J

NOT EXISTS


select  RESOURCE.TYPE, A.FILENAME, A.PATH,  a.hashvalue, A.EFFECTIVEDATE from version A  Left Join RESOURCE on RESOURCE.ID = A.RESOURCEID AND 

not exists(select * from version B where A.RESOURCEID = B.ResourceID and A.PROVIDERID = B.PROVIDERID and A.MCID = B.MCID )


没看懂。A 跟B 其实是一个表吧?那怎么可能出现 A.RESOURCEID = B.ResourceID 呢?若不存在写的意义何在?
[解决办法]

--这逻辑看起来确实....!!! ???
SELECT  RESOURCE.TYPE ,
        A.FILENAME ,
        A.PATH ,
        a.hashvalue ,
        A.EFFECTIVEDATE
FROM    version A
        LEFT JOIN RESOURCE ON RESOURCE.ID = A.RESOURCEID
                              AND NOT EXISTS ( SELECT   *
                                               FROM     version B
                                               WHERE    A.RESOURCEID = B.ResourceID
                                                        AND A.PROVIDERID = B.PROVIDERID
                                                        AND A.MCID = B.MCID )

[解决办法]
not exists自连接查询必须至少有一个不等的条件,否则与本条数据链接的时候条件全部符合就返回不了结果了

热点排行