SQL Server 中的自然联接:不支持但不必要
虽然 Microsoft SQL Server 中未明确支持自然联接,但它提出了以下问题:是否有其他方法可以实现类似的功能。
自然连接与显式连接
自然连接会自动匹配共享相同名称的表之间的列。然而,使用 ON 子句的显式连接提供了更好的控制和清晰度。显式 JOIN 语法非常简单,可以消除任何潜在的歧义或仅基于列名称的意外连接条件。
为什么 Microsoft SQL Server 拥抱显式连接
专家强烈提倡SQL Server 中的显式连接由于以下几个原因原因:
-
清晰度:显式连接明确定义连接条件,没有任何解释空间。
-
列命名精度:使用显式联接允许您适当地命名列,而不必担心命名冲突或其他方面的副作用
-
控制:显式联接使开发人员能够指定他们想要的确切联接条件,避免意外的意外。
其他资源
- [SQL Server - 缺少 NATURAL JOIN / x JOIN y USING(field)](https://stackoverflow.com/questions/1347069/sql-server-lack-of-natural-join-x-join-y-usingfield)
- [是自然联接就性能而言,比 SELECT FROM WHERE 更好?](https://stackoverflow.com/questions/136025/is-natural-join-any-better-than-select-from-where-in-terms-of-performance)
因此,虽然自然联接可能提供明显的便利,但显式联接提供的清晰度、控制力和可靠性使它们成为 SQL Server 开发中的首选。
以上是为什么 SQL Server 避免自然连接,以及如何获得相同的结果?的详细内容。更多信息请关注PHP中文网其他相关文章!