表A、B、C,表A是主表,B、C是子表,现在要这样做:
select B.b from B where B.a =A.a     如果记录数为0 则返回false,记录不为0则返回true;
select C.c from C where C.a =A.a     如果记录数为0 则返回false,记录不为0则返回true;
然后把A.a, B返回、C返回连起来,得到这样的效果:
A.a1   true   true
A.a2   true   false
A.a3   false  false
A.a4   false  true
.........
.........
.........
大家帮帮忙

解决方案 »

  1.   

    正确答案(oracle)
    select L.a, M.TrueOrFalse,N.TrueOrFalse from 
      A L,
        ( select decode(B.b,0,'False','True') from A,B 
            where B.a =A.a ) M,
        ( select decode(C.b,0,'False','True') from A,C 
            where C.a =A.a ) N
      Order by L.a拿分来!
      

  2.   

    不行啊,在SQL SERVER 2K里decode不可识别
      

  3.   

    sql server:SELECT A.a,
    CASE WHEN EXISTS
    (
       select B.b from A,B where B.a =A.a
    ) THEN 'true' ELSE 'false' ,CASE WHEN EXISTS
    (
       select C.c from A,C where C.a =A.a
    ) THEN 'true' ELSE 'false' 
    END
    FROM A
      

  4.   

    刚才少了个End:SELECT A.a,
    CASE WHEN EXISTS
    (
       select B.b from A,B where B.a =A.a
    ) THEN 'true' ELSE 'false' 
    END,
    CASE WHEN EXISTS
    (
       select C.c from A,C where C.a =A.a
    ) THEN 'true' ELSE 'false' END
    FROM A
      

  5.   

    select a.a ,
      bb=case b.b 
      when null then 'false'
      else 'true'
      end,
      cc=case c.c 
      when null then 'false'
      else 'true'
      end  
    from a right join b on a.a=b.a right join c on a.a=c.a
      

  6.   

    select A.a,( select case count(*) when 0 then 'false' else 'true'  END from B where B.b=A.a),
    (select case count(*) when 0 then 'false' else 'true'  END from C where C.a=A.a) from A group by A.a