Oracle完全连接的“ ON”条件和“ AND”子句

时间:2018-07-30 15:50:51

标签: sql oracle outer-join

这是查询:

select *
from Table1 tb1 FULL JOIN Table2
     tb2
     on tb1.party_number = tb2.party_number  // returns 100 results

如果我修改查询以添加另一个条件,如下所示:

select *
from Table1 tb1 FULL JOIN
     Table2 tb2
     on tb1.party_number = tb2.party_number AND 
        1=0

我的理解是,它应返回0个结果,但仍返回与第一个相同的100个结果。我不明白的是,AND后面的子句的意义是什么?

1 个答案:

答案 0 :(得分:1)

AND 1 = 0使on条件始终为false。

因此,您将获得来自table1的所有行,其中table2的列具有NULL的值,以及来自table2的所有行,其中具有{1}}的值来自table1的列。

我不确定这的真正用途是什么。 NULL通常是获得这种结果的更好方法。

结果获得相同的行数是证据-但不是确定性证据-没有匹配项。