【发布时间】:2022-01-25 04:16:40
【问题描述】:
我有一个要求,我必须根据 id 加入两个表。我也为此做了小提琴,但有一列 E_CLUBBED_E 填充为空,但理想情况下,它应该匹配 ques_ans 表的 ref_ans_value 列并给出输出,但我得到空值。
原因:我得到空值,因为 ref_ans_id 对于 ref_ques_id 是空值,我正在加入
join ans_ref ar
on ar.ref_ans_id = qa.ref_ans_id
所以这可能是获得空值的原因。
但这是理想的场景,ref_ques_id 23 ref_ans_id 将仅为空,基于此我必须填充 ques_ans 表中的 ref_ans_value。
CREATE TABLE details_1 (
e_id NUMBER(10),
e_name VARCHAR2(30),
CONSTRAINT pk_details_1_e_id PRIMARY KEY ( e_id )
);
insert into details_1 values(11,'A');
CREATE TABLE ques_ref (
ques_id NUMBER(10),
code VARCHAR2(50),
code_label VARCHAR2(100),
constraint pk_ques_ref primary key(ques_id)
);
insert into ques_ref values(3,'changes_exist','Any known changes');
insert into ques_ref values(2,'E_Clubbed','E_id clubbed with other');
insert into ques_ref values(4,'E_impacted','E impacted by other');
insert into ques_ref values(23,'E_Clubbed_with_other','E clubbed with other E');
CREATE TABLE ques_ans (
ques_ans_id NUMBER(10),
ref_ques_id NUMBER(10),
ref_ans_id NUMBER(10),
ref_ans_value VARCHAR2(100),
e_id NUMBER(10),
CONSTRAINT pk_ques_ans PRIMARY KEY ( ques_ans_id ),
CONSTRAINT fk_ques_ans FOREIGN KEY ( e_id )
REFERENCES details_1 ( e_id ),
constraint fk_ques_and_ques_id foreign key(ref_ques_id)
references ques_ref (ques_id)
);
insert into ques_ans values(1,3,1,null,11);
insert into ques_ans values(2,2,2,null,11);
insert into ques_ans values(3,4,1,null,11);
insert into ques_ans values(4,23,null,1234,11);
CREATE TABLE ans_ref (
ref_ans_id NUMBER(10),
code VARCHAR2(10),
code_value VARCHAR2(30)
);
insert into ans_ref values(1,'R_Yes','Yes');
insert into ans_ref values(2,'R_No','No');
小提琴:Fiddle
【问题讨论】: