2016-10-14 30 views
0

我有一个具有以下运算符的Sybase SQL。 * = 我需要将sql转换为与MySQL一起工作。但是这个操作员在那里给我一个错误。在MySQL中使用它的另一种方法是什么? 这是我得到问题的SQL的一部分。在MySQL中替代* =运算符

(dba.mstaccbalance.comp_code *= dba.trnglupdate.comp_code) and 
     (dba.mstaccbalance.mst_type *= dba.trnglupdate.mst_type) and 
     (dba.mstaccbalance.acc_code *= dba.trnglupdate.mst_code) and 
      (dba.mstaccbalance.lvl_gl_code *= dba.trnglupdate.lvl_gl_code) 

是否必须使用左外连接重写SQL,还是有其他解决方案吗?

回答

0

*=LEFT JOIN=*RIGHT JOIN

在SYSBASE可以查询这样

select * from a, b where a.id *= b.id 

,并在MySQL中,你可以这样写

select * from a left outer join b on a.id = b.id 
0

简短的回答:=**=不符合当前的SQL标准。

MySQL不支持*=运算符,而应该使用LEFT JOIN。您的查询很容易迁移,因为没有任何where子句,这是与正常的JOIN不同之处。