插入一个值 如果在 join table 中找到匹配项
Insert a value If a match is found in join table
我有 table 个 ICD9 代码,其中有几个编码不正确。如果在另一个 table 中找不到匹配项,我想将 "No" 插入到 table 的列中。
例如,我有一个代码 292300,它应该是 2923。我想要
SELECT icd9, icd10 from icd9codes, GEM where icd9 = icd10;
如果没有找到 icd9 代码的匹配项,则执行 INSERT INTO
.
注意:GEM table 包含 icd9 代码及其对 icd10 的等效映射。
我们需要您的数据库架构,与此同时,这是一个盲目的尝试。
首先备份您的 table。
UPDATE icd9codes
LEFT JOIN GEM ON
icd9codes.icd9 = GEM.icd9
SET icd9codes.icd9 = COALESCE(GEM.icd10,'No')
如果要向 icd9codes
中插入新行,那么这是一个非常简单的 SELECT
查询。
insert into icd9codes (icd9)
select icd10
from GEM;
这是对你问题最直接的回答。但是,我怀疑你拥有的是 icd9codes
中的现有行,并且你想更新这些行的列值,如果它们的 icd9
值存在于 GEM
的 icd10
中.
update icd9codes
set the_new_column = 'No'
where exists (
select 1
from GEM
where icd10 = icd9codes.icd9
);
这表示,对于 icd9codes
中具有相应值的任何行 GEM
,将其 the_new_column
值设置为 No
。
我有 table 个 ICD9 代码,其中有几个编码不正确。如果在另一个 table 中找不到匹配项,我想将 "No" 插入到 table 的列中。
例如,我有一个代码 292300,它应该是 2923。我想要
SELECT icd9, icd10 from icd9codes, GEM where icd9 = icd10;
如果没有找到 icd9 代码的匹配项,则执行 INSERT INTO
.
注意:GEM table 包含 icd9 代码及其对 icd10 的等效映射。
我们需要您的数据库架构,与此同时,这是一个盲目的尝试。 首先备份您的 table。
UPDATE icd9codes
LEFT JOIN GEM ON
icd9codes.icd9 = GEM.icd9
SET icd9codes.icd9 = COALESCE(GEM.icd10,'No')
如果要向 icd9codes
中插入新行,那么这是一个非常简单的 SELECT
查询。
insert into icd9codes (icd9)
select icd10
from GEM;
这是对你问题最直接的回答。但是,我怀疑你拥有的是 icd9codes
中的现有行,并且你想更新这些行的列值,如果它们的 icd9
值存在于 GEM
的 icd10
中.
update icd9codes
set the_new_column = 'No'
where exists (
select 1
from GEM
where icd10 = icd9codes.icd9
);
这表示,对于 icd9codes
中具有相应值的任何行 GEM
,将其 the_new_column
值设置为 No
。