关于 exists 语句
对这个语句有些不理解。
比如,...where exists (select * from ...)
exist 的具体工作过程是什么样的?
主查询和子查询都会返回若干记录,每个记录由若干字段组成。
exist如何比较这些字段?
------解决方案--------------------exists本身是不會將主查詢和子查詢的結果集進行比較的,它的作用祇是判斷子查詢是否有返回行
但是可以通過一定的條件將主查詢與子查詢關聯起來
比如說
select * from A as a
where exists(select 1 from B where id = a.id)
與
select * from A
where id in(select id from B)
得到的結果是一樣的
------解决方案----------------------最好看联机帮助
where exists (select * from ...)
exist 的具体工作过程是什么样的?
--可以这么理解,对于主查询的每条记录,都会做一个测试,测试子查询有没有返回记录,如果有,那这条主查询记录就被选中,否则就排除
主查询和子查询都会返回若干记录,每个记录由若干字段组成。
--最后结果只有主查询返回记录,子查询不返回记录
exist如何比较这些字段?
--一般来说,实在子查询的where里写明需要比较的字段,以及比较方法