揭开 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中文网其他相关文章!