cross join + where vs join + on

2018-04-19  本文已影响13人  黑山老水

以下两种query会产生相同结果:

select *
from t1, t2
where t1.xx = t2.xx and t1.yy = t2.yy

select *
from t1 inner join t2
on t1.xx = t2.xx and t1.yy = t2.yy

第一种是cross join,所以也可以写成from t1 cross join t2,cross join会先产生笛卡尔积,然后再根据where的情况筛选符合的rows。这样效率比直接inner join + on的效率低。但是以大O计数来看,他们的时间复杂度都是O(n^2)

上一篇下一篇

猜你喜欢

热点阅读