我有一个表,A,B,C  三个表。    (这两个是A表中的两个列A.TagID, A.Type  )  
                               (这两个是B表中的两个列B.TagID, B.VehicleID)
                               (这两个是C表中的两个列C.TagID, C.NAME)我想写出一个语句,当A.Type  =0 的时候我查出,B表中的B.VehicleID 满足条件(where A.TagID =B.TagID)
                  当A.Type  =0 的时候我查出,C表中的C.NAME      满足条件(where A.TagID =C.TagID)
求求高手一定帮帮小弟啊。

解决方案 »

  1.   

    SELECT A.TagID,B.VehicleID,C.NAME FROM A JOIN B ON A.TagID =B.TagID JOIN C ON A.TagID =C.TagID
    WHERE A.Type =0
      

  2.   

    select A.TagID,B.VehicleID,C.NAME from A,B,C where A.TagID =B.TagID and A.TagID =C.TagID and A.type=0
      

  3.   

    SELECT B.VehicleID,C.NAME
    FROM A,B,C
    WHERE A.TagID =B.TagID AND A.TagID =C.TagID
    AND A.Type =0这样吗?
      

  4.   

    意思就是说 select type from a   ,查出来 当type =0 ,就查B表 当type =1 就查C表啊!
     不好意思刚刚没有表达清楚!
      

  5.   

    是不是可以用if else  写啊!求求高手一定要帮忙啊!
      

  6.   

    type 只有 0和1 的时候select a.TagID,case when a.Type=0 then b.VehicleID else c.name end
    from a,b,c
    where a.TagID=b.TagID and a.TagID=c.TagID 
      

  7.   

    SELECT A.TagID,case a.Type when 0 then B.VehicleID when 1 then C.NAME else '未知' end Ret
    FROM A 
    JOIN B ON A.TagID =B.TagID 
    JOIN C ON A.TagID =C.TagID使用 case 语句就可以,上面是范例
      

  8.   

    你要是写个存储过程的话 可以采用 if....else.... 语句
    单纯发SQL 不能用 if....else.... 语句
    可以这样试下
    SELECT A.TagID,B.VehicleID,C.NAME FROM A JOIN B ON A.TagID =B.TagID JOIN C ON A.TagID =C.TagID
    WHERE ( case A.Type  when '0' then A.TagID =B.TagID  when '1' then A.TagID =C.TagID end)