永发信息网

sql 关于exists 和 in

答案:3  悬赏:20  手机版
解决时间 2021-04-26 21:21
  • 提问者网友:玫瑰园
  • 2021-04-26 10:28

IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况

例:

select * from  表1  where   exists

 ( select id from 表2 where 条件1 nad 条件2 )

表1适合放大表还是小表

最佳答案
  • 五星知识达人网友:时间的尘埃
  • 2021-04-26 11:58

好像不是这样理解的吧。。。


exists( select id from 表2 where 条件1 nad 条件2 )   它返回的是一个bool类型的值,


如果 select id from 表2 where 条件1 nad 条件2  查到值则返回true,,没有查到返回false


select * from  表1  where   exists


 ( select id from 表2 where 条件1 nad 条件2 )


这个整个语句的意思就是    如果select id from 表2 where 条件1 nad 条件2   查到数据,那么就执行select * from  表1  这句

全部回答
  • 1楼网友:人间朝暮
  • 2021-04-26 13:35
建议用联接查询吧
  • 2楼网友:深街酒徒
  • 2021-04-26 13:15

虽然是这个意思

但是这个要看,你想要哪个表的数据?

想要大表里的数据,就放大表的,想要小表的,就放小表的。

如果俩个都想要,应该用left join on或者 inner  join on连接吧???

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯