sql问题...
发布网友
发布时间:2022-04-08 20:49
我来回答
共6个回答
热心网友
时间:2022-04-08 22:19
肯定不一样,第一个应该比第二个的结果多一些才对。
第一个说的是 tmpA.id=tmpB.id and tmpB.status!=1 前面是not exists,那么还有一种可能 tmpA.id !=tmpB.id的也会出现在结果中,不管tmpB.status是否等于1。
而第二个sql则只会出现 tmpA.id=tmpB.id and tmpB.status=1 的相关结果,所以二者的结果一定会有所区别的。
热心网友
时间:2022-04-08 23:37
肯定不一样啊,下面的比上面的结果集要少很多数据。
not exists是检测存在性
inner join是等值连接,条件必须对上才能查出数据。
热心网友
时间:2022-04-09 01:11
select tmpA.* from tmpA
where not exists (
select 1 from tmpB where tmpA.id!=tmpB.id or tmpB.status!=1)
热心网友
时间:2022-04-09 03:03
条件写的都一样, 上面是 not exist 下面是on 肯定相反了
热心网友
时间:2022-04-09 05:11
这sql语句看的我头皮发麻
热心网友
时间:2022-04-09 07:35
第一个改成这样的
select tmpA.* from tmpA
where exists (
select 1 from tmpB where tmpA.id=tmpB.id and tmpB.status!=1)