注册 登录
编程论坛 SQL Server论坛

一个关于WHERE NOT EXISTS的问题

Vitamin1999 发布于 2009-09-26 16:01, 974 次点击
--2.没有发生过销售业务的商品(商品编号、商品名称)
select fItemNum '商品编号',fItemName as '商品名称'
from Items
where not exists
(select * from SaleEntry where Items.fItemId=SaleEntry.fItemId)
go

他到底是谁 not exists 于那个子句呀
为什么这个子句单独运行的时候就报错  说找不到ITEMS 这个表呢
而我用的内联   却能找到   很是迷糊
4 回复
#2
笨鸟2009-09-26 22:17
因为这是一个相关子查询,
select * from SaleEntry where Items.fItemId=SaleEntry.fItemId这句语句要用到父查询的字段。
#3
Vitamin19992009-09-27 09:06
你的意思是   WHERE前面的句子   其实是子句的条件么
#4
笨鸟2009-10-02 15:07
子句是父句的条件,子句依赖于父句。
#5
qianjin2252009-10-06 13:31

多谢!解释得很好。父表的每一行记录都去子表中去检察是否存在,若父表的记录在子表中不存在(通过了id来判断)则显示此条记录。
1