SELECT A.ID,A.FORMID,A.TOID=CASE
                            WHEN A.FORID=0 THEN B.BID
                            WHEN A.FORID>0 THEN C.CID
                            END
FROM A A
INNER JOIN B B
ON A.ID=B.ID
INNER JOIN C C
ON A.ID=C.ID

解决方案 »

  1.   

    SELECT A.ID,A.FORMID,A.TOID=CASE
                                WHEN A.FORID=0 THEN B.BID
                                WHEN A.FORID>0 THEN C.CID
                                END
    FROM A 
    LEFT INNER JOIN B 
    ON A.ID=B.ID
    LEFT INNER JOIN C 
    ON A.ID=C.ID
      

  2.   

    SELECT A.ID,A.FORMID,A.TOID=CASE
                                WHEN A.FORID=0 THEN B.BID
                                WHEN A.FORID>0 THEN C.CID
                                END
    FROM A 
    LEFT  JOIN B 
    ON A.ID=B.ID
    LEFT JOIN C 
    ON A.ID=C.ID
      

  3.   

    SELECT id,formid,toid=(case when ToId=0  then (select Bid from B where id=A.id ) 
      when  Toid>0  then (select Bid from c where id=A.id ) end)   from A