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

关于left join 右表又加一个过滤条件,这样不矛盾吗?请进来指点指点!

sandy186 发布于 2007-03-20 09:30, 1253 次点击
delete t1
from t_RMID_RmStkOutItem t1 left join t_RMID_RmStkOutMst t2 on t1.fRmStkOutNo=t2.fRmStkOutNo
where t2.fRmStkOutNo is null
go
left join不是把左边的全部查出来吗? 但是后面的条件又是表2中的空字符的条件?怎么理解?
3 回复
#2
棉花糖ONE2007-03-20 11:10

你不是有个where条件吗,你那语句的功能和not in等价

[此贴子已经被作者于2007-3-20 11:11:20编辑过]

#3
sandy1862007-03-20 11:43
删除t1中 fRmStkOutNo 字段在t2中是空值的吗?是这样理解?棉花糖麻烦说清楚点?用 not in应该怎么写?
#4
棉花糖ONE2007-03-20 13:00
delete t1
from t_RMID_RmStkOutItem t1 left join t_RMID_RmStkOutMst t2 on t1.fRmStkOutNo=t2.fRmStkOutNo
where t2.fRmStkOutNo is null

delete from t_t_RMID_RmStkOutItem where t1.fRmStkOutNo not in (select fRmStkOutNo
from t_RMID_RmStkOutMst) 这两个是等价的
1