阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

关于 SQLite 的 EXISTS 与 NOT EXISTS

180次阅读
没有评论

共计 689 个字符,预计需要花费 2 分钟才能阅读完成。

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

关于 SQLite 的 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。

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

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计689字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中