我基本上有两个表t1和t2,t1包含针对ind_ref 86034的代码3299,其中t2缺少该代码。 我想在t2中插入一个代码,然后从t1中获取代码3299。
这是t1
IND_REF Code
86034 3299
这是t2
IND_REF Code
86034 1212
我希望将输出显示为
IND_REF Code
86034 1212
86034 3299 <-- as insert from t1
我该如何实现,
这是我的查询,但没有更新。
INSERT INTO test.DBO.ATTRIBUTE (ATTR_CODE_REF)
select ((SELECT att.ATTR_CODE_REF
FROM individual ind
join contact c on c.individual_ref=ind.individual_ref
join organisation org on org.organisation_Ref=c.ORGANISATION_REF and c.main_organisation='y' and c.valid_to is null --contact_ref
join attribute att on att.organisation_ref=org.organisation_ref and att.code_type=3299
where iND.individual_ref=86034))--@indref)
from ATTRIBUTE
WHERE ATTRIBUTE.INDIVIDUAL_REF=86034
答案 0 :(得分:2)
您可以尝试将insert into .... select
与NOT exists
一起使用。
插入t2
中的数据,该数据从Code
中丢失了t1
。
insert into t2 (IND_REF,Code)
SELECT IND_REF,Code
FROM t1
WHERE NOT exists
(
SELECT IND_REF,Code
FROM t2
where t1.Code = t2.Code
)
答案 1 :(得分:1)
使用“并集所有运算符”垂直合并具有相同列数的两个表:
SELECT [IND_REF],[CODE] FROM t1 WHERE [IND_REF]=86034
UNION ALL
SELECT [IND_REF],[CODE] FROM t2 WHERE [IND_REF]=86034
答案 2 :(得分:1)
-您可以基于选择
使用插入INSERT INTO t2 (IND_REF ,Code)
SELECT IND_REF ,Code
FROM t2
WHERE IND_REF = 86034