现在有两张表
A:A_id(主键), A_name, A_other
B: A_id, B_id   (联合主键)想通过一个sql语句,查询出A表中的全部数据,将B表中B_id对应的A_id所在的记录用一个常量标识出来,就是在每条记录加一个常量字段表示。
请各位高手指教。

解决方案 »

  1.   

    补充:如果用B_id作为查询条件,将查询出的A_id所在的记录用一个常量值表示,这个常量字段值用true表示,否则常量值用false或空表示。
      

  2.   

    select a.aid , b.bid , decode(b.aid,null,false,true)  from a , b where a.aid = b.aid(+)
      

  3.   

    select A.A_id,A.A_name,A.A_other,decode(B.A_id,null,'false','true')
    from A left join B on A.A_id = B.A_id;A表与B表左连接,包含B_id的数据就是B表中B_id对应的A_id所在的记录,注意decode函数中后两个参数要加引号,你试试吧,看好用不
      

  4.   


    非常感谢,这里还缺少了一个条件应该加在哪里?需要用B中的bid进行过滤,查询bid是某个特定值的aid才这样处理。仍然是A表中的全部数据。
      

  5.   

    你直接加在 where 后面阿。。加个 and b.bid = '特定的值'
      

  6.   

    我试过,这样不可以了,比如A表中有3条数据,B表中有两条数据,那么只能查询出特定值的两条数据,而不是A表中的全部数据了。
      

  7.   

    额。那你这样 and b.bid(+) = '特定的值'