如果表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实际上将来会增长更多。
答案 0 :(得分:1)
我认为您所考虑的是FULL OUTER JOIN
实际上是CROSS JOIN
,或者是笛卡尔联接操作。 CROSS JOIN
确实返回N * M条记录,其中N是左表中的记录数,M是右表中的记录数。
FULL OUTER JOIN
不同 - 它是单个操作中的LEFT JOIN
和RIGHT JOIN
组合:首先连接表,并返回连接操作产生的每个记录。
此外,与LEFT JOIN
一样,左表中没有右侧匹配的行也会返回,并显示右表中列的NULL
列,和RIGHT JOIN
一样,右表中没有左边匹配的行将被返回,并显示左表中列的NULL
列。