我有一个查询,我从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
我知道其他语言的myInt * = myTotal也可以读作myInt * myInt = myTotal。但是,我正在使用包含所有字符,没有整数的varchars。我写出来像:
AND a.person_name * a.person_name = b.person_name
瞧!它似乎起作用了。有人可以解释发生了什么吗?* =运算符是将char转换为等效的整数还是?为什么我在网络上的任何地方都找不到该运算符?
在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
如前所述这里:
使用非标准产品特定的语法和WHERE子句指定外部联接。 =运算符用于指定左外部联接,而= 运算符用于指定右外部联接。