EXISTS 运算符

网友的一句总结:EXISTS是判断子查询的可行性,IN是判断是否存在于子查询里。

相关子查询不返回结果,只返回符合子查询搜索条件的指令,符合指令则计入然后最后主查询返回结果。

这个例子是从order_items表中筛选没有被买过的商品。

或者换句话来说,从一组数字中筛选没有出现过的,再从反面理解,就是从一组数字中筛选出出现过的,然后再反向。

那肯定是同一个数据,所以考虑到 子查询,自连接,EXISTS的整体运用。

子查询是用来定位的,而自连接是一一对应的,EXISTS是判断定位出来的一一对应的数字是否具有可行性。

SELECT *
FROM products p
  WHERE NOT EXISTS
--注意语法是not exists后面不附加值 区别于大于小于
	    (SELECT product_id
		FROM order_items
		WHERE product_id = p.product_id)
--把这个自连接语句想成一一对应查询机制

完毕。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值