关于 SQLite 的 EXISTS 与 NOT EXISTS

栏目: 数据库 · 发布时间: 7年前

内容简介:话不多说先来看看表结构:显而易见 Pid 存放的 Person 的 id ;下面重点(奇葩需求!!!!)

话不多说先来看看表结构:

关于  <a href='https://www.codercto.com/topics/18894.html'>SQLite</a>  的 EXISTS 与 NOT EXISTS

显而易见 Pid 存放的 Person 的 id ;下面重点(奇葩需求!!!!)

我需要向表一(Person)里插入几条数据(...)这时候不会对表二做任何操作。

需求:查询表一(Person)条件是表二(Person_Visison)里有没有表一(Person)的 id 如果有则不返回 结果集,没有则返回。

上代码:                       ( 注 :这是我封好的js主要看 SQL 语句)

1 select('SELECT * FROM Person WHERE NOT EXISTS(SELECT * FROM Person_Visison  WHERE Person_Visison.Pid=Person.id) ');
  • 不相关子查询:子查询的查询条件不依赖于父查询的称为不相关子查询。
  • 相关子查询:子查询的查询条件依赖于外层父查询的某个属性值的称为相关子查询,带EXISTS 的子查询就是相关子查询。
  • EXISTS表示存在量词:带有EXISTS的子查询不返回任何记录的数据,只返回逻辑值“True”或“False”。

相关子查询执行过程:先在外层查询中取“学生表”的第一行记录,用该记录的相关的属性值(在内层WHERE子句中给定的)处理内层查询,若外层的WHERE子句返回“TRUE”值,则这条记录放入结果表中。然后再取下一行记录;重复上述过程直到外层表的记录全部遍历一次为止。

  • Exists:若子查询的结果集非空时,返回“True”;若子查询的结果集为空时,返回“False” 。
  • NOT EXISTS :若子查询结果为空,返回“TRUE”值;若子查询的结果集非空时,返回 “FALSE。 

嘿嘿嘿好理解多了吧!!!!!!!

Linux公社的RSS地址 : https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2019-02/156714.htm


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

机器学习

机器学习

周志华 / 清华大学出版社 / 2016-1-1 / 88.00元

机器学习是计算机科学与人工智能的重要分支领域. 本书作为该领域的入门教材,在内容上尽可能涵盖机器学习基础知识的各方面。 为了使尽可能多的读者通过本书对机器学习有所了解, 作者试图尽可能少地使用数学知识. 然而, 少量的概率、统计、代数、优化、逻辑知识似乎不可避免. 因此, 本书更适合大学三年级以上的理工科本科生和研究生, 以及具有类似背景的对机器学 习感兴趣的人士. 为方便读者, 本书附录给出了一......一起来看看 《机器学习》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

SHA 加密
SHA 加密

SHA 加密工具