SQL中exists的使用方法

SQL中exists的使用方法EXISTS用于检查子查询是否将返回至少一行数据。子查询实际上不返回任何数据,而是返回True或False。有一个查询如下:复制代码如下:select c.customerid,公司名称from customers c where EXISTS(select order id from orders o where o . customerid=Cu . customerid)。这个作品中的存在是怎样的?子查询返回OrderId字段,但是外部查询正在查找CustomerID和CompanyName字段。这两个字段肯定不在OrderID中。这个怎么搭配?EXISTS用于检查子查询是否将返回至少一行数据。子查询实际上不返回任何数据,而是返回True或False值。EXISTS指定一个子查询来检测行是否存在。语法:EXISTS子查询。参数子查询是一个受限的SELECT语句(不允许使用COMPUTE子句和INTO关键字)。结果为布尔值,如果子查询包含行,则返回TRUE。在子查询中使用NULL仍然返回结果集。此示例在子查询中指定了NULL,并返回结果集,使用EXISTS后仍然如此。复制代码如下:select category name from categories where EXISTS(select null)order by category name ASC查询比较使用EXISTS,在本例中比较两个语义相似的查询。第一个查询使用EXISTS,第二个查询使用IN。请注意,两个查询返回相同的信息。复制代码如下:从存在的出版商中选择不同的pub _ name(select * from titles where pub _ id=publishers . pub _ id and type= business )复制代码如下:从出版商中选择不同的pub _ name where pub _ id in(select pub _ id from titles where type= business )使用EXISTS和=ANY比较查询此示例显示了两种用于查找与出版商居住在同一城市的作者的查询方法:第一种方法使用=ANY,第二种方法使用EXISTS。 请注意,这两种方法返回相同的信息。复制代码如下:SELECT au_lname,Au _ fname FROM authors WHERE exists(SELECT * FROM publishers WHERE authors . city=publishers . city)复制代码代码如下:SELECT au_lname,Au _ fname FROM authors WHERE city=ANY(SELECT city FROM publishers)比较EXISTS和IN的查询。此示例中显示的查询查找由城市中任何出版商出版的以字母B开头的书名:按如下方式复制代码:Select title FROM titles WHERE pub _ id=titles . pub _ id AND city LIKE B % Copy code如下:Select title FROM titles WHERE pub _ id in(Select pub _ id FROM publishers WHERE city LIKE B % )using NOT exists的效果与EXISTS相反。如果子查询不返回任何行,则满足NOT EXISTS中的WHERE子句。此示例查找不出版商业书籍的出版商的名称:复制代码如下:select pub _ name from publishers where not exists(select * from titles where pub _ id=publishers . pub _ id and type= business )ORDER BY pub _ name是以下SQL语句的另一个示例:复制代码如下:select distinct name from xs where not exists(select * from KC where student number=xs。学号和课程号=kc。课程号)使最外层查询xs中的数据逐行成为内层的子查询。中间的exists语句只返回上一级的true或false,因为查询条件在student id=xs的句子中。学号和课程id=kc。课程id。每个exists都有一行值。它只是告诉第一层,最外面的查询条件在这里有效或者无效,返回的时候会返回值。如果直到最高级别都为真,它将返回结果集。假(False)丢弃。复制代码如下:不存在的地方select * from xs _其中学号=xs。学号和课程号=kc。这个存在是为了告诉上级,这句话对我来说不成立。因为他不在最高层,他会继续向上回归。select distinct name from xs where not exists(此处的exists语句接收最后一个为false的值。他在判断结果是真的,因为是最高级,所以他会把这一行的结果(这里指的是查询条件)返回到结果集。几个重点:最内层要用的唤醒条件列表,比如xs。学号,kc。课程编号等。应该早点说明。从xs中选择不同的名称。不要太在意中间的exists语句。理解exists和not exists嵌套时返回值。

SQL中exists的使用方法