gpt4 book ai didi

mysql - 通过关系合并两个表

转载 作者:行者123 更新时间:2023-11-29 14:30:28 25 4
gpt4 key购买 nike

我正在现有数据库的基础上构建我以前从未见过的关系结构。

我有三个表:

legend1
legid INT(11), AUTO_INCREMENT, PRIMARY
description VARCHAR(255)

legend2
legid INT(11), AUTO_INCREMENT, PRIMARY
description VARCHAR(255)

items
id INT(11), AUTO_INCREMENT, PRIMARY
name VARCHAR(255)
legid INT(11)
legend VARCHAR(8)

items 中的每条记录都与 legend1legend2 中的数据相关。字段 items.legend 确定它是哪一个。我想摆脱这种构造,因为 legend1legend2 具有相同的结构。唯一不同的是内容。

我想要这样的结构:

legend
legid INT(11), AUTO_INCREMENT, PRIMARY
description VARCHAR(255)

items
id INT(11), AUTO_INCREMENT, PRIMARY
name VARCHAR(255)
legid INT(11)

问题是表已满,没有数据可能会丢失。两个表的 id 都从 1 开始,因此几乎每个主键都会发生冲突。

我有这个查询:

INSERT INTO legend1 (description) SELECT description FROM legend2;

此查询不起作用,因为它弄乱了 legend2 中引用的 ID。

最佳答案

执行插入查询后:

INSERT INTO legend1(描述)从 legend2 中选择描述;

执行以下查询

UPDATE items SET Legid = (SELECT Legid FROM legend1 WHERE legend1.description = items.description) WHERE legend ='用于定义它来自 legend2 表的内容'

请注意,我还没有尝试过查询,但解决方案有点像这样。如果您找出我犯的语法错误,我确信它会起作用。

它的作用如下:将整个 legend2 表插入 legend1 表后,更新项目表以设置相应的 legendid

关于mysql - 通过关系合并两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10119188/

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