比如如下语句
SELECT *
FROM tabA
INNER JOIN tabB ON tabA.id = tabB.id AND IF(tabA.status = 'OK',tabA.status = tabB.status_ok,tabA.status = tabB.status_not_ok)
类似于以上逻辑,要在AND的时候判断条件关联不同字段,代码可行吗
我测试过了好像可以用,有点不放心求证实

解决方案 »

  1.   

    这样试试看 :
    SELECT *
    FROM tabA
    INNER JOIN tabB ON tabA.id = tabB.id   and  tabA.status = tabB.status_ok  and   tabA.status = tabB.status_not_ok    where tabA.status = 'OK' 
      

  2.   

    SELECT *
    FROM tabA
    INNER JOIN tabB ON tabA.id = tabB.id AND ((tabA.status = 'OK' and tabA.status = tabB.status_ok) or (tabA.status != 'OK' and tabA.status = tabB.status_not_ok) )
      

  3.   

    能加,case when也可以
      

  4.   

    IF 可以使用,CASE WHEN也可以。 但不推荐,因为这样MYSQL就无法利用索引。