现在有一个表A 里面有个字段 a1  它的值为  1或者2。还有id字段。
表 B 里面有 id 字段 与 表A id 相同连接用,其中有要取的数据count。
表 C 里面有 id 字段 与 表A id 相同连接用,其中有要取的数据count。
要做的事情就是。判断表A中字段 a1 的值, 为1 就在表B中连接 取到数据count, 为2 就在表C中连接 取到数据count。
求大神教导。。

解决方案 »

  1.   

    能否用一条SQL 语句 实现。。
      

  2.   

    select a.id, if(a.a1=1,b.count,c.count)
    from a left join b on a.id=b.id
    left jon c on a.id=c.id
      

  3.   

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.id lelf join a.id = b.id' at line 1...
      

  4.   


    select a.id, if(a.a1=1,IFNULL(b.count,0),IFNULL(c.count,0)) as count
    from a left join b on a.id=b.id
    left jon c on a.id=c.id#2基础上改的
      

  5.   

    select t_alarm_list.alarm_Idx,if(data_type=1,t_alarm_data_measurand.nGrpID,t_alarm_cfg_indication.nGrpID) as nGrpID
     from t_alarm_list lelf join t_alarm_data_measurand on t_alarm_list.alarm_Idx = t_alarm_data_measurand.nAlarmIdx lelf join t_alarm_cfg_indication on t_alarm_list.alarm_Idx = t_alarm_cfg_indication.nAlarmIdx;这个是我写的- -!
      

  6.   

    select t_alarm_list.alarm_Idx,if(data_type=1,t_alarm_data_measurand.nGrpID,t_alarm_cfg_indication.nGrpID) as nGrpID
     from t_alarm_list lelf join t_alarm_data_measurand on t_alarm_list.alarm_Idx = t_alarm_data_measurand.nAlarmIdx lelf join t_alarm_cfg_indication on t_alarm_list.alarm_Idx = t_alarm_cfg_indication.nAlarmIdx;
      

  7.   

    加()试下select t_alarm_list.alarm_Idx,if(data_type=1,t_alarm_data_measurand.nGrpID,t_alarm_cfg_indication.nGrpID) as nGrpID
     from t_alarm_list lelf join t_alarm_data_measurand on (t_alarm_list.alarm_Idx = t_alarm_data_measurand.nAlarmIdx) lelf join t_alarm_cfg_indication on (t_alarm_list.alarm_Idx = t_alarm_cfg_indication.nAlarmIdx);
      

  8.   


    MYSQL很早就告诉你错在哪儿了。
    可惜你过于自信。 一会怀疑别人的IF不对,一会怀疑MYSQL不能两个LEFT JOIN。
      

  9.   

    left jon 应该是left join
      

  10.   

    left jon 
    left join