Fabio,
Se não colocar nada no relacionamento, a query retorna PRODUTO CARTESIANO.
Portanto, em sua sugestão, a segunda query vai provocar produto cartesiano,
não full outer join. Ex. se a t1 tem 10 linhas e a t2 tem 10, a segunda
query vai trazer 100 linhas (10x10). Dá para reproduzir facilmente.

ops$marcio:LX10G> create table t1 as select rownum id from all_users where
rownum <= 10;

Table created.

ops$marcio:LX10G> create table t2 as select (rownum+5) id from all_users
where rownum <= 10;

Table created.

ops$marcio:LX10G>
ops$marcio:LX10G> select * from t1 full outer join t2 on ( t1.id = t2.id )
order by 1;

           ID            ID
------------- -------------
            1
            2
            3
            4
            5
            6             6
            7             7
            8             8
            9             9
           10            10
                         14
                         13
                         15
                         12
                         11

15 rows selected.

ops$marcio:LX10G>
ops$marcio:LX10G> select count(*) from t1, t2;

     COUNT(*)
-------------
          100

1 row selected.

ops$marcio:LX10G>
ops$marcio:LX10G> select * from t1, t2 where t1.id = t2.id (+)
  2  union all
  3  select * from t1, t2 where t1.id (+) = t2.id and t1.id is null
  4  order by 1
  5  /

           ID            ID
------------- -------------
            1
            2
            3
            4
            5
            6             6
            7             7
            8             8
            9             9
           10            10
                         11
                         12
                         13
                         14
                         15

15 rows selected.


On 4/10/07, Fabio Santos <[EMAIL PROTECTED]> wrote:
>
>   Qual a versão do oracle?
>
> Se for 9i, pode fazer com full outer join. Se for 8i eh so nao colocar
> nada no relacionamento
>
> select t1.c1, t2.c1
> from t1
> full outer join t2
> on t1.c1 = t2.c1;
>
> ou
>
> select t1.c1, t2.c1
> from t1, t2;
>
>
>
> -----Mensagem original-----
> De: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br> [mailto:
> oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>]
> Em nome de Cristiano Mascarenhas da Silva
> Enviada em: segunda-feira, 9 de abril de 2007 10:00
> Para: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>
> Assunto: [oracle_br] Join
>
> Prezados, bom dia,
>
> Fazendo um join no oracle, não é aceito colocar o sinal (+) dos dois
> lados, exemplo:
>
> where
> a.campo (+) = b.campo (+)
>
> Então como fazemos essa consulta com outer join nas duas tabelas?
>
> Sds,
>
> Cristiano Mascarenhas da Silva
>
> --
> Internal Virus Database is out-of-date.
> Checked by AVG Free Edition.
> Version: 7.5.446 / Virus Database: 268.18.25/745 - Release Date:
> 3/4/2007 12:48
>
> --
> Internal Virus Database is out-of-date.
> Checked by AVG Free Edition.
> Version: 7.5.446 / Virus Database: 268.18.25/745 - Release Date:
> 3/4/2007 12:48
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Marcio Portes
Material Tecnico em Portugues - http://mportes.blogspot.com
Practical Learning Oracle     -
http://mportes.blogspot.com/2006/02/practical-learning-oracle.html


[As partes desta mensagem que não continham texto foram removidas]

Responder a