我有两个表:

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/

10-09 16:46