左外部联接和右外部联接之间的实时用法和差异

  • 本文关键字:外部 用法 实时 之间 sql
  • 更新时间 :
  • 英文 :


如果使用左外联接(选择表A左外联接表B),当数据与左表(表A)不匹配时,我可以在右表(表B)中具有null值。如果我更改选择查询顺序(选择表B左外联接表A),现在我可以在表A中有空数据。因此,使用左外联接可以执行相同的操作。那么,右外联接有什么用呢?请帮我解决这个问题。

left outer joinright outer join在某种意义上是多余的。您可以只使用其中一个来编写查询。

提供它们的原因与提供<>的原因相同。有时,对于给定的逻辑运算,其中一个更有意义。

就我而言,我努力只使用joinleft outer join编写查询。left outer join对我来说更有意义,因为它说"保留第一个表中的所有行,以及其他表中的匹配行"。这并不意味着right outer join是错误的,只是不同的人以不同的方式理解事物。

区别很简单——在左外部联接中,无论"右"表中是否有匹配的列,都将显示"左"表中的所有行。在右外联接中,无论"左"表中是否有任何匹配列,都将显示"右"表中的所有行。希望我们上面给出的例子也能澄清这一点。

我应该使用右外联接还是左外联接?事实上,这并不重要。右外部联接不添加左外部联接没有的任何功能,反之亦然。要想从右外联接和左外联接中获得相同的结果,只需切换表在SQL语句中的显示顺序。

从表A LEFT JOIN表B中选择*与从表B中选择*RIGHT JOIN表A

SELECT*FROM TableA LEFT JOIN TableB表A中的所有行和表B中的匹配行。如果在表B中没有找到匹配的行,则表B的所有列都将被空替换

示例:TableA行1.2.3.表B行2.3.4

表A LEFT JOIN表B将给出以下元组:(1个空)(2 2)(3 3)

表A RIGHT JOIN表B将给出以下元组:(2 2)(3 3)(空4)

表A OUTER JOIN表B包含以下元组:(1个空)(2 2)(3 3)(NULL 4)

最新更新