用switch+case拼接SQL语句
switch($key)
{
  case 't_2':
             left join t_2
             break;
  case 't_3'
             left join t_3
             break;
}

解决方案 »

  1.   

    mysql语法里面有if语句,你可以参考,没什么麻烦的!
      

  2.   

    我知道有IF.不过不会写select t_1.* from t_1 if(t_1.key='t_2', left join t_2 on................, left join t_3 on.....)大概这样是会出错的
      

  3.   

    好像还有个 case..else..end试下先
      

  4.   

    select t_1.* from t_1 case t_1.key when 't_2' then (left join t_2 on t_1.id=t_2.id) end失败!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      

  5.   

    select * from t_1 left join (t_2,t_3) on ((t_1.id=t_2.id and t_1.key='t_2') or (t_1.id=t_3.id and t_1.key='t_3')) where t_2>0 and t_3.id>0
    这样似乎是可以了
      

  6.   

    select * from t_1 left join t_2 on t_1.id=t_2.id and t_1.key='t_2' union select * from t_1 left join t_3 on t_1.id=t3.id and t_1.key='t_3';
      

  7.   

    找php开发工程师的工作请找我,010-58780760