Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TSQL中WHERE子句中的*=是什么意思?_Sql_Sql Server_Tsql - Fatal编程技术网

TSQL中WHERE子句中的*=是什么意思?

TSQL中WHERE子句中的*=是什么意思?,sql,sql-server,tsql,Sql,Sql Server,Tsql,有人问我下面查询的输出 Select * from TableA t1, TableB t2 where t1.Id *= t2.Id 有谁能解释一下,如果存在这种类型的查询,如果存在,那么它是如何工作的。因为我从未见过这种类型的查询,谢谢。 更新: 同样,当我在SQLServer中运行这个查询时,我得到了这个结果 The query uses non-ANSI outer join operators ("*=" or "=*"). To ru

有人问我下面查询的输出

Select      *    
from        TableA t1, TableB t2
where       t1.Id *= t2.Id
有谁能解释一下,如果存在这种类型的查询,如果存在,那么它是如何工作的。因为我从未见过这种类型的查询,谢谢。
更新:
同样,当我在SQLServer中运行这个查询时,我得到了这个结果

The query uses non-ANSI outer join operators ("*=" or "=*"). 
To run this query without modification, please set the compatibility level 
for current database to 80, using the SET COMPATIBILITY_LEVEL option 
of ALTER DATABASE. 
It is strongly recommended to rewrite the query using ANSI outer join 
operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). 
In the future versions of SQL Server, non-ANSI join operators will 
not be supported even in backward-compatibility modes.

*=
运算符表示在
中使用星号的
左外部联接
,其中
外部联接
的一种旧的
非ANSI
兼容语法,因此不应再使用


以下是where条件中的星号,它实际上是非ANSI外部联接运算符的一部分,用于定义隐式外部联接

这将给现代数据库带来麻烦,因为该操作员自1992年以来就已过时

以下内容基本相同:

  SELECT * FROM TableA LEFT OUTER JOIN TableB ON t1.Id = t2.Id

  SELECT * FROM TableA , TableB WHERE t1.Name *= t2.Name