mysql之exists子查询和in查询的对比

exists和not exists对应 in 和not in

不同在于,在select 查询中,exists和in的执行顺序不同。

[sql] 
mysql> select * from category;  
+----+---------+  
| id | c_name  |  
+----+---------+  
|  1 | ios     |  
|  2 | android |  
|  3 | sb      |  
+----+---------+  
3 rows in set  
 
商品表: www.2cto.com  
[sql] 
mysql> select * from goods;  
+----+---------+--------+-------+-----+  
| id | name    | cat_id | price | num |  
+----+---------+--------+-------+-----+  
|  1 | 苹果    |      1 |  4999 |   2 |  
|  2 | nexus4  |      2 |  1999 |   3 |  
|  4 | 荣耀2   |      2 |  1888 |   5 |  
|  6 | 三星    |      2 |  3000 |   2 |  
+----+---------+--------+-------+-----+  
6 rows in se  
  www.2cto.com  
要求:只找出分类下有商品的分类
 
[sql] 
mysql> select * from category c where exists (select * from goods where cat_id=c.id);  
+----+---------+  
| id | c_name  |  
+----+---------+  
|  1 | ios     |  
|  2 | android |  
+----+---------+  
2 rows in set 

先执行select查询,结果再和子句中的select结果比较。和in相反。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值