in和exists的区别
一、in的语法
test_expression [ NOT ] IN
(
subquery
| expression [ ,...n ]
)
结果值
如果 test_expression 与 subquery 返回的任何值相等,或与逗号分隔的列表中的任何 expression 相等,那么结果值就为 TRUE。否则,结果值为 FALSE。
二、EXISTS
EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False
EXISTS 指定一个子查询,检测 行 的存在。
语法: EXISTS subquery
结果类型: Boolean 如果子查询包含行,则返回 TRUE ,否则返回 FLASE 。
三、IN 与 EXISTS 的区别
IN
确定给定的值是否与子查询或列表中的值相匹配。
EXISTS
指定一个子查询,检测行的存在。
参考资料: SQL中in和exists的区别 http://www.studyofnet.com/news/313.html
test_expression [ NOT ] IN
(
subquery
| expression [ ,...n ]
)
结果值
如果 test_expression 与 subquery 返回的任何值相等,或与逗号分隔的列表中的任何 expression 相等,那么结果值就为 TRUE。否则,结果值为 FALSE。
二、EXISTS
EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False
EXISTS 指定一个子查询,检测 行 的存在。
语法: EXISTS subquery
结果类型: Boolean 如果子查询包含行,则返回 TRUE ,否则返回 FLASE 。
三、IN 与 EXISTS 的区别
IN
确定给定的值是否与子查询或列表中的值相匹配。
EXISTS
指定一个子查询,检测行的存在。
参考资料: SQL中in和exists的区别 http://www.studyofnet.com/news/313.html