在Access中我有一个使用内部连接和IF语句的查询。我是否可以在MySQL中使用它,因为它看起来不像预期的那样工作,不确定是否缺少某些东西或者MySQL不允许这种方法?内部加入IF声明?
SELECT Matrix.Model, Payment.Cost
FROM Payment
INNER JOIN Matrix ON if(Left(Matrix.Model,1)='S', Left(Matrix.Model,2), Left(Matrix.Model,1) = Matrix.PreFix)
GROUP BY Matrix.Model
我似乎得到一切都返回,不以S开头,就好像该方法是无效的,但不会导致重大错误。
试试这些链接,可能是它对你的帮助..... http://stackoverflow.com/questions/15640321/conditional-inner-join-statements-in-mysql ...... http:// stackoverflow.com/questions/5585338/mysql-inner-join-if-statement ........ http://stackoverflow.com/questions/8038322/how-to-choose-inner-join-field-with -if-case – deemi 2014-11-06 12:06:23
我认为你只是在错误的地方有你的右括号。您正在基于_Left(Matrix.Model,2)_评估为true或_Left(Matrix.Model,1)= Matrix.PreFix_评估为true,根据_Left(Matrix.Model,1)的值进行连接。 ='S'_。将结束括号从连接条件的末尾移到等号之前。 – Kickstart 2014-11-06 12:48:06