如下两个语句,有什么区别,会带来什么问题?
selet * from t1 where t1.id in (select id from t2 where t2.name like '%test%')selet * from t1 where exists (select id from t2 where t2.name like '%test%')
selet * from t1 where t1.id in (select id from t2 where t2.name like '%test%')selet * from t1 where exists (select id from t2 where t2.name like '%test%')
第二个语句是只要(select id from t2 where t2.name like '%test%')为真 就是存在记录 那么就返回整个t1表的记录 2个语句是不一样的
2只要存在t2.name like '%test%',则返回全部记录
1返回ID 在 (select id from t2 where t2.name like '%test%')中的记录