[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的主要内容,如果未能解决你的问题,请参考以下文章