插入值如果在连接表中找到匹配项

时间:2015-10-20 18:35:00

标签: mysql sql icd

我有一张ICD9代码表,其中有几个代码编码不正确。我想插入" No"如果在另一个表中找不到匹配项,则进入该表中的列。

例如,我有一个代码292300,它应该是2923.我想要像

这样的东西

SELECT icd9, icd10 from icd9codes, GEM where icd9 = icd10;

如果找不到匹配的icd9代码,请执行INSERT INTO

注意:GEM表包含icd9代码及其对icd10的等效映射。

2 个答案:

答案 0 :(得分:0)

我们需要你的数据库架构,与此同时,黑暗中是一个镜头。 先备份你的桌子。

UPDATE icd9codes
LEFT JOIN GEM ON
icd9codes.icd9 = GEM.icd9
SET icd9codes.icd9 = COALESCE(GEM.icd10,'No')

答案 1 :(得分:0)

如果要在icd9codes中插入新行,那么这是一个非常简单的SELECT查询。

insert into icd9codes (icd9)
select icd10
from GEM;

这是你问题的最直接的答案。但是,我怀疑您拥有icd9codes中的现有行,并且如果icd9 icd10 GEM中存在update icd9codes set the_new_column = 'No' where exists ( select 1 from GEM where icd10 = icd9codes.icd9 ); 值,您希望更新这些行的列值

icd9codes

这表示,对于GEMthe_new_column中具有相应值的任何行,请将其No值设置为rename table(:posts), :title, to: :summary