左右加入之间的差异

Anonim

左右加入

在处理SQL时,连接是一个常见的名称,会不时出现。 join子句有助于组合数据集中不同表的记录。有效的连接会创建一个表,既可以按原样使用,也可以与其他人一起推出。因此,建议理解这些连接以及它们之间的差异,以便了解具体的连接,以及是否应该在特殊情况下采用右连接或左连接。

要更好地了解联接及其差异,了解可用联接的类型非常重要。通常有三种类型的连接。这些连接包括内连接,交叉连接和外连接。内连接通常比较表,并且仅在找到匹配的情况下给出或返回结果。内连接的主要功能是减小结果集的大小。

另一方面,交叉连接比较两个表,并返回来自两个表的行的每个可能的组合。预计此次加入会产生大量结果,其中大多数甚至可能都没有意义。因此,应谨慎使用此连接。

外连接对表进行比较,并在匹配可用时返回数据。正如在内部联接中看到的那样,在看到匹配记录的情况下,外部联接会复制给定表中的行。外连接的结果通常较大,因此数据集很大,因为集合本身不会从集合中删除。

左连接是指保留第一个表中的所有记录而不管结果如何,并且当第二个表值不匹配时插入NULL值。另一方面,右连接是指保留所有记录来自第二个表而不管结果是什么,并且当结果与第一个表中的结果不匹配时使用NULL值。

因此,左外连接保留“左”表中的所有行,而不管在“右”表上是否存在与其匹配的行。因此左表引用了联合声明中的第一个表。它应该出现在表格上出现的关键字“join”的左侧。完成左外连接后,应返回左侧的所有行。只要没有匹配项,表中的非匹配列就会填充NULL。

值得注意的是,在处理这两个连接时,表左侧的所有行都显示在左外连接的表中。无论右表中是否存在任何匹配列,结果都会显示。在右外连接中,将显示右侧的所有行,这与表左侧是否存在任何匹配列无关。

是否选择左外连接或右外连接无关紧要,因为显示的结果相同。右外连接呈现的功能与左外连接呈现的功能相同。通过简单地切换表在SQL语句中出现的顺序,无论使用何种连接,都可以获得类似的结果。

摘要

连接分为三个主要组 - 内连接,交叉连接和外连接

左外连接显示表左侧的所有行

右连接显示表右侧的所有行

交替SQL序列可以消除使用右外连接和左外连接,而只使用一个。