SELECT e.last_name, e.department_id, d.department_name
FROM   employees e
FULL OUTER JOIN departments d
ON   (e.department_id = d.department_id) ;
这样子好用,但是如果有两个字查询子表之间关联如果去做
SELECT TAB1.A,TAB2.B 
FROM (SELECT A FROM TAB_A) TAB1 FULL OUTER JOIN 
(SELECT B FROM TAB_B) TAB2 ON ..........
这样写就不行,ORACLE中满连接又不像左联接和右联接那样支持(+),请问各位高手如何解决?

解决方案 »

  1.   

    可以使用view或者临时表(globel temporary table)。
      

  2.   

    现在客户不可能要求用临时表和view,不知道能不能用SQL来解决呢
      

  3.   

    SELECT TAB_1.WK_KARI_SWK_DENDATEH, TAB_2.WK_KASI_SWK_UPD_CNT
      FROM (SELECT TO_CHAR(swk.SWK_DENDATE, 'YYYY/MM/DD') WK_KARI_SWK_DENDATEH,
                   swk.SWK_DENNO WK_KARI_SWK_DENNO,
                   swk.SWK_UPD_CNT WK_KARI_SWK_UPD_CNT
              FROM GL_SWK_HDR swk) TAB_1 
       FULL JOIN  (SELECT TO_CHAR(swk.SWK_DENDATE, 'YYYY/MM/DD') WK_KASI_SWK_DENDATEH,
                        swk.SWK_DENNO WK_KASI_SWK_DENNO,
                        swk. SWK_UPD_CNT WK_KASI_SWK_UPD_CNT
                   FROM GL_SWK_HDR swk) TAB_2 ON TAB_1.WK_KARI_SWK_UPD_CNT =
                                                 TAB_2.WK_KASI_SWK_DENNO 
    应该没有问题,但是报错ORA-00933