2020-10-20
阅读量:
3685
join on后面的条件可以加and,但是不能加or,为什么?
问题详述:join on后面的条件可以加and,但是不能加or。怎么理解呢?
答:
join on后面接的本来应该是一个连接条件,如果加and的话,我们可以理解为让连接条件更加严谨,但是加or的话会出现报错,因为on是最基本的连接条件,放宽连接条件的话,join就会无法完成。以下是错误示范:
select t1.a,t1.b,t2.a,t2.b
from t1
left outer join t2
on t1.a = t2.a
or t1.b = t2.b
可如果我就是想多join一些结果出来,有没有替代方案呢?有的,就是union all
select t1.a,t1.b,t2.a,t2.b
from
(select t1.a,t1.b,t2.a,t2.b from t1
left outer join t2
on t1.a = t2.a
union all
select t1.a,t1.b,t2.a,t2.b from t1
left outer join t2
on t1.b = t2.b) tmp






评论(0)


暂无数据
推荐帖子
1条评论
0条评论
0条评论