我就想知道(+)的意思,好像不是简单的左连接或外连接的关系吧。。以下是用(+) 写的:
SELECT T3.*, T4.depa_name depa_samezone_name
  FROM (SELECT T1.*, T2.basi_name depa_level_name
          FROM (SELECT a.depa_id,
                       a.depa_code,
                       a.depa_number,
                       a.depa_type,
                       a.depa_level,
                       a.depa_fullname,
                       a.depa_name,
                       a.depa_samezone,
                       a.depa_download,
                       b.basi_name depa_type_name
                  FROM Department a, Basic b
                 WHERE 1 = 1
                   AND a.depa_type = b.basi_id) T1,
               Basic T2
         WHERE T1.depa_level = T2.basi_id(+)) T3,
       Department T4
 WHERE T3.depa_samezone = T4.depa_id(+)
 ORDER BY T3.depa_code, T4.depa_code, T3.depa_number

以下是用right join写的:

 
 
 SELECT T3.*, T4.depa_name depa_samezone_name
  FROM (SELECT T1.*, T2.basi_name depa_level_name
          FROM (SELECT a.depa_id,
                       a.depa_code,
                       a.depa_number,
                       a.depa_type,
                       a.depa_level,
                       a.depa_fullname,
                       a.depa_name,
                       a.depa_samezone,
                       a.depa_download,
                       b.basi_name depa_type_name
                  FROM Department a, Basic b
                 WHERE 1 = 1
                   AND a.depa_type = b.basi_id) T1 right join 
               Basic T2
         on T1.depa_level = T2.basi_id) T3
right join 
       Department T4
 on  T3.depa_samezone = T4.depa_id
 ORDER BY T3.depa_code, T4.depa_code, T3.depa_number

但是得到的结果完全不同。。谁能帮忙解释一下。。