sql Exists

我对sql server 2000 中EXISTS子句的理解!

2007-08-09 09:41

使用EXISTS 子句,如果子查询包含行,则返回 TRUE。
exists 子句返回的是true 或 false,而不是结果集,

select * form table_1 as a
where exists(select * from table2 as b where a.id=b.id)

这条语句的意思是说:从table_1表中取出与条件相匹配(true)的数据.
这里的条件是:'select * from table2 as b where a.id=b.id' 因为这个条件被包含在exists子句中,
所以如果这条语句成功返回结果集,就返回true,否则返回 false.
sql语句的执行的时候是,如果有where 子句就判断题条件是否相匹配(true),然后再将相应数据选中,

E. 使用 NOT EXISTS
NOT EXISTS 的作用与 EXISTS 正相反。如果子查询没有返回行,则满足 NOT EXISTS 中的 WHERE 子句.

与上面sql语句有同等效果的sql语句

select *
form table_1 as a inner join table2 as b
on
a.id=b.id

看到了没,sql语句真是博大精深,以后还得大加练习!
sql语句中 当条件相匹配的时(true)才会将数据选中!

你可能感兴趣的:(sql,server,where,false,表)