SELECT 
  a.field1,a.field2,a.business_type,a.send_type,b.business_type_name,c.send_type_name
FROM T_DATA
LEFT JOIN TDC_DOMAIN b
ON  a.business_type = b.domain_value 
AND b.domain_code = 'business_type'
LEFT JOIN TDC_DOMAIN c
ON  a.business_type = c.domain_value 
AND b.domain_code = 'send_type'

解决方案 »

  1.   

    不好意思,上面的错了
    ---------------------------------------------------------------------
    SELECT 
      a.field1,a.field2,a.business_type,a.send_type,
      b.domain_name business_type_name,c.domain_name send_type_name
    FROM T_DATA a
    LEFT JOIN TDC_DOMAIN  b
    ON  a.business_type = b.domain_value 
    AND b.domain_code = 'business_type'
    LEFT JOIN TDC_DOMAIN c
    ON  a.business_type = c.domain_value 
    AND c.domain_code = 'send_type'
      

  2.   

    谢谢 xpony(xiezequn) select t.*, t1. domain_name,t2. domain_name
    from T_DATA t,TDC_DOMAIN t1,TDC_DOMAIN t2
    where t.business_type=t1.domain_value 
    and t1.domain_code='business_type'
    and t.send_type=t2.domain_value(+)
    AND t2.domain_code='send_type'由于t_data表中的send_type可能为NULL
    以上写法记录数差了很多,只显示send_type不为NULL的
    我想让为NULL的值也显示出来,该如何改?
      

  3.   

    select t.*, t1. domain_name,t2. domain_name
    from T_DATA t,TDC_DOMAIN t1,TDC_DOMAIN t2
    where t.business_type=t1.domain_value 
    and t1.domain_code='business_type'
    and t.send_type=t2.domain_value(+)
    AND t2.domain_code(+)='send_type'
    OK,搞定,谢谢 xpony(xiezequn)
      

  4.   

    select a.field1,a.field2,
           a.business_type,
           a.send_type,
           b.domain_name business_type_name,
           c.domain_name send_type_name
    from t_data a,
    (
      select * from dtc_domain where domain_code='business_type'
    ) b,
    (
      select * from dtc_domain where domain_code='send_type'
    ) c
    where a.business_type=b.domain_code(+) and a.send_type=c.domain_code(+);