首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存在于MySQL中的用法

问存在于MySQL中的用法
EN

Stack Overflow用户
提问于 2015-03-27 20:28:39
回答 3查看 81关注 0票数 0

编辑2:我想问的是:如果我理解正确,EXISTS语句不会从关系中过滤任何元组。那么,由于它不过滤任何元组,所以使用它是为了什么目的?

编辑:详细说明,在第一个示例中,子查询中存在以下内容:

代码语言:javascript
复制
cities_stores.store_type = stores.store_type

但据我所知,如果子查询的计算结果为TRUE,那么返回的是所有DISTINCT store_type的FROM stores,对吗?如果是的话,那又有什么用呢?

这里,声明[NOT] EXISTS语句将计算为TRUE或FALSE。在链接中存在的两个示例中,如果我假设第一个示例的EXISTS语句和第二个示例的NOT EXISTS语句将计算为TRUE,那么这些示例应该等价于以下内容:

示例1:

代码语言:javascript
复制
SELECT DISTINCT store_type FROM stores
  WHERE TRUE;

示例2:

代码语言:javascript
复制
SELECT DISTINCT store_type FROM stores
  WHERE TRUE;

如果是这样的话,那么这两个查询都是等价的,只要它们的[NOT] EXISTS语句计算为TRUE。所以我的问题是,如何使用[NOT] EXISTS语句是有用的?它们是如何工作的?如果我说的是错的,你能指出错误的地方并解释[NOT] EXISTS语句是如何工作的吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-27 21:48:16

您所指的示例使用关联子查询。子查询

这是一个很好的答案,解释了背后的机制。https://stackoverflow.com/a/11592277/2707705

票数 0
EN

Stack Overflow用户

发布于 2015-03-27 20:40:01

注意子查询"WHERE cities_stores.store_type = stores.store_type"中的这条语句。这是内表检查外表的位置。在示例中,cities_stores是内部表,存储是主查询中的外部表。

编辑2:我想问的是:如果我理解得对,一个EXISTS语句不会过滤关系中的任何元组。那么,由于它不过滤任何元组,所以使用它是为了什么目的?

您要查找的筛选器位于子查询- "WHERE cities_stores.store_type = stores.store_type"中。不是每个表“存储”中的记录都会从子查询中返回true。

票数 0
EN

Stack Overflow用户

发布于 2015-03-27 20:47:12

Exist语句与

代码语言:javascript
复制
select * from mainTable
Where (select count(*) from subTable where related condition) > 0

但是除了一个例外,它会在第一场比赛之后停止。

不存在是这句话的自然延伸

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29309659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档