[MySQL]使用EXISTS代替IN

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[MySQL]使用EXISTS代替IN相关的知识,希望对你有一定的参考价值。

#IN -> EXISTS
SELECT * FROM CouponItem AS A WHERE A.CouponId IN(SELECT B.Id FROM Coupon AS B WHERE B.Id<30);
SELECT * FROM CouponItem AS A WHERE EXISTS(SELECT B.Id FROM Coupon AS B WHERE B.Id<30 AND A.CouponId=B.Id);

#NOT IN -> NOT EXISTS
SELECT * FROM CouponItem AS A WHERE A.CouponId NOT IN(SELECT B.Id FROM Coupon AS B WHERE B.Id<30);
SELECT * FROM CouponItem AS A WHERE NOT EXISTS(SELECT B.Id FROM Coupon AS B WHERE B.Id<30 AND A.CouponId=B.Id);

以上是关于[MySQL]使用EXISTS代替IN的主要内容,如果未能解决你的问题,请参考以下文章

用exists代替in真的好么?

用exists代替in真的好么?

用exists代替in真的好么?

用exists代替in真的好么?

sql面试题_SQl优化技巧_1注意通配符中like的使用,百分号放后面_2避免在where子句中对字段进行函数操作_3在子查询当中,尽量用exists代替in_4where子句中尽量不要使用(代码片

2017年07月03号课堂笔记