Oracle SQL左侧和右侧外部联接,带/不带where子句,提供不同的输出
为什么以下查询的输出有差异 根据我的理解,它应该为前3个查询提供相同的输出,并为后3个查询提供相同的输出Oracle SQL左侧和右侧外部联接,带/不带where子句,提供不同的输出,oracle,join,where,Oracle,Join,Where,为什么以下查询的输出有差异 根据我的理解,它应该为前3个查询提供相同的输出,并为后3个查询提供相同的输出 select count(*) from CTM_People a left outer join user_x b on a.remedy_login_id = b.login_name; 结果1:152771 select count(*) from CTM_People a left outer join user_x b on a.remedy_logi
select count(*)
from CTM_People a left outer join user_x b
on a.remedy_login_id = b.login_name;
结果1:152771
select count(*)
from CTM_People a left outer join user_x b
on a.remedy_login_id = b.login_name
where a.remedy_login_id like '%';
select count(*)
from CTM_People a right outer join user_x b
on a.remedy_login_id = b.login_name;
结果2:151185
select count(*)
from CTM_People a left outer join user_x b
on a.remedy_login_id = b.login_name and a.remedy_login_id like '%';
结果3:152771
select count(*)
from CTM_People a left outer join user_x b
on a.remedy_login_id = b.login_name
where a.remedy_login_id like '%';
select count(*)
from CTM_People a right outer join user_x b
on a.remedy_login_id = b.login_name;
结果1:150899
select count(*)
from CTM_People a right outer join user_x b
on a.remedy_login_id = b.login_name where a.remedy_login_id like '%';
select count(*)
from CTM_People a right outer join user_x b
on a.remedy_login_id = b.login_name and a.remedy_login_id like '%';
结果2:150889
select count(*)
from CTM_People a right outer join user_x b
on a.remedy_login_id = b.login_name where a.remedy_login_id like '%';
select count(*)
from CTM_People a right outer join user_x b
on a.remedy_login_id = b.login_name and a.remedy_login_id like '%';
结果3:150899
select count(*)
from CTM_People a right outer join user_x b
on a.remedy_login_id = b.login_name where a.remedy_login_id like '%';
select count(*)
from CTM_People a right outer join user_x b
on a.remedy_login_id = b.login_name and a.remedy_login_id like '%';
两个表中的总计数均为
select count(*) from CTM_People; **Result : 152771**
select count(*) from user_x; **Result : 150899**
LIKE运算符不接受空值。请检查a.rememy\u login\u idLIKE运算符不接受空值。在.remedy\u login\u id中是否有空值?如果您使用的是Oracle,请调整您的标记并删除MySQL和SQL Server。可能有提到的@DavidP之类的空值,第三个不受影响,因为“%”是外部联接条件,另一个区别取决于外部联接的表。谢谢David和James。我得到了它。CTM_People表实际上有1586个空值。我添加了我以前的注释作为答案,这样你们就可以接受或者其他什么了。