Recent site activity

SQL Joins‎ > ‎

outer join example


create table english ( text varchar2(20), id number);
create table french ( text varchar2(20), id number);

insert into english values ('one',1);
insert into english values ('two',2);
insert into english values ('three',3);
insert into english values ('four',4);
insert into english values ('five',5);
insert into english values ('six',6);

insert into french values ('un',1);
insert into french values ('trois',3);
insert into french values ('quatre',4);
insert into french values ('cinq',5);
insert into french values ('six',6);
insert into french values ('sept',7);
insert into french values ('huit',8);

commit;

SQL> select * from english e, french f where e.id=f.id(+);

TEXT                         ID TEXT                         ID
-------------------- ---------- -------------------- ----------
one                           1 un                            1
three                         3 trois                         3
four                          4 quatre                        4
five                          5 cinq                          5
six                           6 six                           6
two                           2

6 rows selected.

Elapsed: 00:00:00.59
SQL>
SQL> select * from english left join french using(id);

        ID TEXT                 TEXT
---------- -------------------- --------------------
         1 one                  un
         3 three                trois
         4 four                 quatre
         5 five                 cinq
         6 six                  six
         2 two

6 rows selected.

Elapsed: 00:00:00.14
SQL> select * from english e, french f where e.id(+)=f.id;

TEXT                         ID TEXT                         ID
-------------------- ---------- -------------------- ----------
one                           1 un                            1
three                         3 trois                         3
four                          4 quatre                        4
five                          5 cinq                          5
six                           6 six                           6
                                huit                          8
                                sept                          7

7 rows selected.

Elapsed: 00:00:00.14
SQL> select * from english right join french using(id);

        ID TEXT                 TEXT
---------- -------------------- --------------------
         1 one                  un
         3 three                trois
         4 four                 quatre
         5 five                 cinq
         6 six                  six
         8                      huit
         7                      sept

7 rows selected.


Many to Many 

 insert into english values ('two',2);
 insert into english values ('three',3);
 insert into french values ('trois',3);
 select * from english e, french f where e.id=f.id(+) order by e.id;

TEXT                         ID TEXT                         ID
-------------------- ---------- -------------------- ----------
one                           1 un                            1
two                           2
two                           2
three                         3 trois                         3
three                         3 trois                         3
three                         3 trois                         3
three                         3 trois                         3
four                          4 quatre                        4
five                          5 cinq                          5
six                           6 six                           6


Comments