首页 >数据库 >mysql教程 >'*=”在旧版 Transact-SQL 连接中意味着什么?

'*=”在旧版 Transact-SQL 连接中意味着什么?

DDD
DDD原创
2025-01-03 13:35:38431浏览

What Does

揭开 Transact-SQL 连接中“*=”的神秘面纱

在 Transact-SQL (TSQL) 领域,一个古老的惯例出现了——一个让许多人摸不着头脑的奇特之处:神秘的“*=”。这个符号有什么深刻的含义?

解析语法

遇到神秘的连接条件“WHERE table1.yr =* table2.yr -1”可以唤起困惑感。这里到底有什么魔力?

瞧,古人的智慧:这种语法代表了 2005 年之前 TSQL 时代的外连接遗留物。与更熟悉的 ANSI JOIN 语法不同,这种旧的约定表示外连接。

古老的语法

为了进一步阐明其含义,请考虑这种古老的形式外连接:

"WHERE t.column =* s.column"

在此结构中,“t”和“s”代表两个表,“column”标识执行连接的列。 “*=”运算符建立一个外连接,其中 NULL 值不会从结果中排除。

过去的遗产

必须注意的是,这语法已过时且不被现代 SQL 标准识别。当在遗留代码中遇到它时,应该避免它或将其重构为更当前、更明确的 ANSI JOIN 语法。

参考

对于那些想更深入了解 TSQL 历史的人历史,“SQL Server 2005 Outer Join Gotcha”提供了对这个奇怪的遗迹的进一步见解。

以上是'*=”在旧版 Transact-SQL 连接中意味着什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn