Oracle11g 1外部连接与左连接,然后是右连接

Oracle11g 1外部连接与左连接,然后是右连接,oracle11g,left-join,outer-join,query-performance,Oracle11g,Left Join,Outer Join,Query Performance,如果表A有7k条记录,表B有5条记录,则以表A为驱动程序的左侧外部联接给出7k条记录,以表B为驱动程序的右侧外部联接给出5条记录 然而,根据我的理解,一个完整的外部连接会给出7k*5条记录。总是这样还是随Join子句的不同而变化?如果总是这样,那么为了合并表A和表B之间的数据,让左外部联接结果与右外部联接结果合并,而不是完全外部联接,不是更好的选择吗。原谅我的麻木,我很累。:-) 这里显示的数字给出了这些表之间记录的相对变化,表B在未来实际上会增长得更多。我认为您所认为的完全外部连接实际上是交叉

如果表A有7k条记录,表B有5条记录,则以表A为驱动程序的左侧外部联接给出7k条记录,以表B为驱动程序的右侧外部联接给出5条记录

然而,根据我的理解,一个完整的外部连接会给出7k*5条记录。总是这样还是随Join子句的不同而变化?如果总是这样,那么为了合并表A和表B之间的数据,让左外部联接结果与右外部联接结果合并,而不是完全外部联接,不是更好的选择吗。原谅我的麻木,我很累。:-)


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

我认为您所认为的
完全外部连接实际上是
交叉连接
,或者笛卡尔连接操作
交叉连接
返回N*M条记录,其中N是左表中的记录数,M是右表中的记录数

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

此外,与
左联接
类似,左表中右侧不匹配的行也将返回,并为右表中的列显示
NULL
列,与
右联接
类似,将返回右表中左侧不匹配的行,并为左表中的列显示
NULL