SQL server 2000中的这个操作数(*= star-equals)是什么?

Bla*_*ick 22 sql sql-server-2000 operands

我有一个查询,我从ms sql 2000中提取并插入到MySql查询中.它不起作用,MySql会阻塞*=运算符.在这个例子中,我有两个名为person_name的varchar列.

SELECT * FROM tbl1 a, tbl2 b 
WHERE a.id = b.id
AND a.person_name *= b.person_name
Run Code Online (Sandbox Code Playgroud)

我知道在其他语言中myInt*= myTotal也可以读作myInt*myInt = myTotal.但是,我正在使用包含所有字符的varchars,没有整数.我把它写成:

AND a.person_name * a.person_name = b.person_name
Run Code Online (Sandbox Code Playgroud)

瞧!它似乎有效.有人能解释一下发生了什么吗?*=运算符是否将字符转换为等价的整数或?为什么我不能在网络上的任何地方找到这个运营商?

Cri*_*tiC 22

在SQL 2000中,它被用作LEFT OUTER JOIN

=*是一个正确的外部联接

您的查询可能是:

SELECT 
  * 
FROM 
  tbl1 a LEFT OUTER JOIN tbl2 b ON a.person_name = b.person_name
WHERE 
  a.id = b.id
Run Code Online (Sandbox Code Playgroud)

如前所述这里:

使用非标准产品特定语法和WHERE子句指定外部联接.*=运算符用于指定左外连接,=*运算符用于指定右外连接.