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子句指定外部联接.*=运算符用于指定左外连接,=*运算符用于指定右外连接.