1右连接与左连接跟随右连接

时间:2015-08-31 14:31:51

标签: oracle11g left-join outer-join query-performance

如果表A有7k记录而表B有5个记录,则表A作为驱动程序的左外连接给出7k记录,而将表B作为驱动程序的右外连接给出5个记录。

但根据我的理解,FULL OUTER JOIN会给出7k * 5条记录。总是如此,或者它与Join子句有所不同?如果总是如此,那么要合并表A和表B之间的数据,使用右外部联接结果而不是FULL OUTER JOIN使LEION OUTER JOIN结果UNION ALL不是更好的选择。原谅我的麻木,我很累。: - )

这里显示的数字给出了我们在这些表之间可以有的记录的相对变化,表B实际上将来会增长更多。

1 个答案:

答案 0 :(得分:1)

我认为您所考虑的是FULL OUTER JOIN实际上是CROSS JOIN,或者是笛卡尔联接操作。 CROSS JOIN确实返回N * M条记录,其中N是左表中的记录数,M是右表中的记录数。

FULL OUTER JOIN不同 - 它是单个操作中的LEFT JOINRIGHT JOIN组合:首先连接表,并返回连接操作产生的每个记录。

此外,与LEFT JOIN一样,左表中没有右侧匹配的行也会返回,并显示右表中列的NULL列,和RIGHT JOIN一样,右表中没有左边匹配的行将被返回,并显示左表中列的NULL列。