gpt4 book ai didi

mysql - 通过中间表Mysql从另一个表更新表

转载 作者:行者123 更新时间:2023-11-29 21:46:50 26 4
gpt4 key购买 nike

我有下一个表设置,两个表通过中间表相关,如下所示:

客户端

| client_id | ...|field_X |
| 1 | ...|value1 |
| 2 | ...|value2 |
| 3 | ...|value3 |

项目

| project_id | ...|field_X |
| 1 | ...| |
| 2 | ...| |
| 3 | ...| |
| 4 | ...| |
| 5 | ...| |
| 6 | ...| |
| 7 | ...| |

客户项目

| client_id | project_id|
| 1 | 2 |
| 1 | 3 |
| 2 | 4 |
| 2 | 5 |
| 3 | 6 |
| 3 | 7 |

表项目中的 field_x 是新的,我必须用表客户端的数据填充它以获得大约如下所示的内容:

项目

| project_id | ...|field_X |
| 1 | ...| |
| 2 | ...|value1 |
| 3 | ...|value1 |
| 4 | ...|value2 |
| 5 | ...|value2 |
| 6 | ...|value3 |
| 7 | ...|value3 |

我不知道如何处理中间表。我已经尝试过这段代码,但它不起作用。

INSERT INTO project  
(field_x)

(select field_x
from
client_project
inner join
client
where client_project.client_id = client.client_id
);

我知道我必须做什么,但由于中间表,我无法将其转换为 sql 命令。有人可以解释如何处理它吗?

提前致谢。

最佳答案

我假设您已经拥有 project 表中的所有条目,但它们缺少 Field_X 属性?所以你需要的是更新,而不是插入

UPDATE project p, client c, project_client pc SET p.Field_X=c.Field_X WHERE p.ID=pc.ProjectID AND c.ID=pc.ClientID

但是,请注意,在两个地方拥有相同的数据并不是一个好的做法;如果可能的话,始终将一个事实只放在一个地方。

关于mysql - 通过中间表Mysql从另一个表更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34041992/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com