Desidero utilizzare uno FULL OUTER JOIN
tra due tabelle su più colonne, ma quando entrambe le colonne sono nulle, non sono considerate uguali durante il join, quindi ottengo due righe diverse. Come posso scrivere il mio join, quindi le colonne null sono considerate uguali?SQL: FULL OUTER JOIN su colonne null
ho predisposto un esempio semplificato:
create table t1 (
id number(10) NOT NULL,
field1 varchar2(50),
field2 varchar2(50),
CONSTRAINT t1_pk PRIMARY KEY (id)
);
create table t2 (
id number(10) NOT NULL,
field1 varchar2(50),
field2 varchar2(50),
extra_field number(1),
CONSTRAINT t2_pk PRIMARY KEY (id)
);
insert into t1 values(1, 'test', 'test2');
insert into t2 values(1, 'test', 'test2', null);
insert into t1 values(2, 'test1', 'test1');
insert into t2 values(2, 'test1', 'test1', null);
insert into t1 values(3, 'test0', null);
insert into t2 values(3, 'test0', null, 1);
insert into t2 values(4, 'test4', 'test0', 1);
select *
from t1
full outer join t2 using (id, field1, field2);
Perché non limitarsi a unirsi sulle colonne ID poiché sono entrambe chiavi principali per le rispettive tabelle? – Sentinel