回 帖 发 新 帖 刷新版面

主题:[讨论]還是SQL語句

下面一句SQL,其中的 EXISTS  不懂 請解疑

SELE COMMPANY FROM CUST A WHERE [color=FF0000]EXISTS[/color](SELE * FROM ORDERS B WHERE A.POSTCODE==B.POSTCODE)

回复列表 (共6个回复)

沙发

包含.
就是查询CUST.POSTCODE=ORDERS.POSTCODE

板凳

[quote]包含.
就是查询CUST.POSTCODE=ORDERS.POSTCODE[/quote]


那和以下這一句是不是等同:

SELE CUST.COMMPANY FROM CUST INNER JOIN ORDERS ON CUST.POSTCODE==ORDERS.POSTCODE

3 楼

SELE COMMPANY FROM CUST A WHERE EXISTS(SELE * FROM ORDERS B WHERE A.POSTCODE==B.POSTCODE)
包含的意思,相当于
select commpany from cust where postcode in (select postcode from orders)
很简单的一句不知为何写的如此深奥。

4 楼

WHERE 子句中的IN和EXIST有何區別?

5 楼

传说中EXISTS比IN的速度快.....
还有就是查询多条件重复(或者不重复)记录时间EXISTS比较方便吧.
WHERE条件可以多个,SELECT * FROM TABLENAME A EXISTS (SELECT 1 FROM TABLENAME B A.X=B.Y AND A.C=B.D ...)

6 楼

EXISTS

in
的一种特殊形式,EXISTS 关键字的子查询,唯一允许带 * 的通配符!

从速度上来讲,EXISTS 比 in 慢的多!

我来回复

您尚未登录,请登录后再回复。点此登录或注册