LEFT JOIN和LEFT OUTER JOIN之间的区别是什么?
当前回答
我发现按以下顺序更容易想到联接:
CROSS JOIN-两个表的笛卡尔乘积。所有连接从此处开始INNER JOIN-添加了过滤器的CROSS JOIN。OUTER JOIN-缺少元素的INNER JOIN(来自LEFT或RIGHT表)随后添加。
在我找到这个(相对)简单的模型之前,JOIN总是有点像一门黑色艺术。现在它们很有意义。
希望这能帮助你,而不是让你困惑。
其他回答
左连接和左外部连接是相同的。前者是后者的简写。右联接和右外部联接关系也是如此。这次示威将说明平等。通过SQLFiddle提供了每个查询的工作示例。该工具将允许手动操作查询。
鉴于
左连接和左外部连接
后果
右连接和右外部连接
后果
我是一名PostgreSQL DBA,据我所知,外部连接和非外部连接之间的区别是一个在互联网上有大量讨论的话题。直到今天,我从未看到这两者之间的区别;所以我更进一步,我试图找出它们之间的区别。最后,我阅读了关于它的全部文档,我找到了答案,
因此,如果您查看文档(至少在PostgreSQL中),您可以找到以下短语:
INNER和OUTER在所有形式中都是可选的。INNER是默认值;LEFT、RIGHT和FULL表示外部连接
换句话说,
左联接和左外部联接相同
右联接和右外部联接相同
我希望它能为那些仍在努力寻找答案的人做出贡献。
JOIN主要有三种类型
内部:获取两个表中存在的数据仅JOIN表示INNER JOIN外部:有三种类型LEFT OUTER--仅获取左表匹配条件中的数据RIGHT OUTER--仅获取右表匹配条件下的数据FULL OUTER—获取任何或两个表中的数据(LEFT或RIGHT或FULL)OUTER JOIN可以不写“OUTER”交叉连接:将所有内容连接到所有内容
我发现按以下顺序更容易想到联接:
CROSS JOIN-两个表的笛卡尔乘积。所有连接从此处开始INNER JOIN-添加了过滤器的CROSS JOIN。OUTER JOIN-缺少元素的INNER JOIN(来自LEFT或RIGHT表)随后添加。
在我找到这个(相对)简单的模型之前,JOIN总是有点像一门黑色艺术。现在它们很有意义。
希望这能帮助你,而不是让你困惑。
回答您的问题
在Sql Server中,连接语法OUTER是可选的
msdn文章中提到:https://msdn.microsoft.com/en-us/library/ms177634(v=sql.130).aspx
所以下面的列表显示了具有和不具有OUTER的连接等效语法
LEFT OUTER JOIN => LEFT JOIN
RIGHT OUTER JOIN => RIGHT JOIN
FULL OUTER JOIN => FULL JOIN
其他等效语法
INNER JOIN => JOIN
CROSS JOIN => ,
强烈推荐Dotnet Mob Artice:加入Sql Server
推荐文章
- 我如何循环通过一组记录在SQL Server?
- 数据库和模式的区别
- 如何在SQL Server中一次更改多个列
- 外键约束可能导致循环或多条级联路径?
- 如何选择每一行的列值不是独特的
- nvarchar(max)非文本
- 在SQL Server 2008 R2中重命名数据库时出错
- 将数据复制到另一个表中
- 如何在SQL中选择表的最后一条记录?
- 修改列,添加默认约束
- 在存储过程中使用“SET XACT_ABORT ON”有什么好处?
- 如何检查SQL Server文本列是否为空?
- 如何创建一个SQL Server函数“连接”多行从一个子查询到一个单独的分隔字段?
- 在SQL中更新多个列
- 如何删除表中特定列的第一个字符?