关于SQL2000中exists的问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 05:31:09
楼主发表于:2009-12-11 15:25:09INSERT into pubs..ls
SELECT TOP 6 MB001,MB002,MB003,MC007,MB004,MC014 AS 实际数量
FROM INVMB LEFT JOIN INVMC
ON MB001=MC001 WHERE ( MB001 LIKE '303%' OR MB001 LIKE '311%' OR MB001 LIKE '30910%'
OR MB001 LIKE '30913%' OR MB001 LIKE '30914%')
AND MB002 NOT LIKE '%J%' AND MC007 <>0 AND MC007 IS NOT NULL AND NOT EXISTS
(SELECT * FROM pubs..ls where MB001=pubs..ls.MB001) ORDER BY NEWID()

不明白问题如下:语句中pubs..ls为临时表
(1)当ls表中无数据时,我用not exists 的时候返回结构为6行数据,而用exists的时候可以返回0行
(2)当ls表中有数据时,我用not exists 的时候返回结构为0行数据,而用exists的时候可以返回6行
不是exists是存在的意思吗?我写的原意是当ls表中有的数据,就不查询出来
谁能帮我解释意思啊?
麻烦各位大侠了!!

简单意思是?:
向临时表pubs..ls 插入 从INVMB与INVMC关联的数据 条件是不存在临时表的数据就插入?
INSERT INTO pubs..ls
SELECT 字段A TableName
是先执行SELECT 然后再执行INSERT的 (1)与(2)都是正确结果
--
我写的原意是当ls表中有的数据,就不查询出来 ?
那就是 NOT EXISTS
(SELECT * FROM pubs..ls where MB001=pubs..ls.MB001)