SELECT a.mailCode, a.mailNum, c.id, c.num
FROM (select mailCode, mailNum, id from mail where deal_status= '02') a, 
(select id, num from mailInfo where is_num <> '1') c
WHERE  a.id = c.id(+)

解决方案 »

  1.   

    "如果a.id是null的话则不关连c表"是指查询结果中包括能关联的和a表中id为空的记录吗?如果是,可以这样写
    SELECT a.mailCode, a.mailNum, c.id, c.num
        FROM mail a, mailInfo c
        WHERE a.deal_status = '02'
          AND a.id = c.id
          AND c.is_num <> '1'
    union all
    SELECT a.mailCode, a.mailNum, NULL, NULL
        FROM mail a
        WHERE a.deal_status = '02'
          AND a.id is null
      

  2.   

    TO: zzwind5
    你的那个和我那个思路是一样的,对效率方面没有什么提高。
    bobfang(匆匆过客) 的方法好一些,但是和我前面的执行结果不一样 :(
      

  3.   

    楼主还是列一下两个表的简单数据,和结果数据吧。
    觉得楼主的要求“如果a.id是null的话则不关连c表”和后面的sql语句不一致。
    哪个是楼主要的结果?