1 外部连接 vs 左连接跟随右连接

1 Outer Join vs Left join following with Right Join

如果 Table A 有 7k 条记录,Table B 有 5 条记录,那么 Left Outer Join 有 Table A as Driver 给出 7k 条记录,Right Outer Join 有 Table B as Driver给出了5条记录。

但是根据我的理解,FULL OUTER JOIN 给出了 7k*5 条记录。情况总是如此还是随 Join 子句而变化?如果情况总是如此,那么要合并 Table A 和 Table B 之间的数据,让 LEFT OUTER JOIN 结果 UNION ALL 和 Right OUTER JOIN 结果而不是 FULL 不是更好的选择吗外连接。请原谅我的麻木,我很累。:-)

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

我认为你认为的FULL OUTER JOIN实际上是CROSS JOIN,或者笛卡尔连接操作。 CROSS JOIN 做了 return N*M 条记录,其中 N 是左边的记录数 table,M 是右边的记录数 table.

FULL OUTER JOIN 不同——它是 LEFT JOINRIGHT JOIN 在单个操作中的组合:首先连接 table 并且连接产生的每条记录操作是 returned。

此外,与 LEFT JOIN 一样,左侧 table 右侧没有匹配项的行也将被 return 编辑并显示 NULL 右侧列的列 table,并且像 RIGHT JOIN 一样,右侧 table 中左侧没有匹配项的行将是 return编辑并显示左侧 table.

列的 NULL