我有两个表:
table ficha_atendimento
int id
string cidadaos_cns
table cidadaos
int id
string cns
我需要在表
int cidadaos_id
上创建列ficha_atendimento_cidadao
,我喜欢用cidadaos表的ID填充它,就像这样:insert into ficha_atendimento
set cidadao_id = select id from cidadaos where cidadaos.cns = ficha_atendimento.cns
但这行不通...有什么帮助吗?
最佳答案
您需要执行两个单独的操作来实现。首先,将cidadao_id
列添加到表中。然后,从UPDATE
表中cidados
其值:
ALTER TABLE ficha_atendimento ADD COLUMN cidadao_id INT NOT NULL;
UPDATE ficha_atendimento f
JOIN cidadaos c ON c.cns = f.cns
SET f.cidadao_id = c.id
您可能还想在
FOREIGN KEY
值上添加cidadao_id
:ALTER TABLE ficha_atendimento ADD FOREIGN KEY (cidadao_id) REFERENCES cidadaos(id)
关于mysql - 使用select和where更新表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55485543/