Tôi muốn sử dụng FULL OUTER JOIN
giữa hai bảng trên một số cột, nhưng khi cả hai cột đều rỗng, chúng không được coi là bằng nhau trong khi nối, vì vậy tôi có hai hàng khác nhau. Làm thế nào tôi có thể viết tham gia của tôi, do đó, các cột null được coi là bằng nhau?SQL: FULL OUTER JOIN trên các cột rỗng
tôi đã thiết lập một ví dụ đơn giản:
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);
Tại sao không chỉ tham gia vào các cột ID vì chúng là cả hai khóa chính cho các bảng tương ứng? – Sentinel