gpt4 book ai didi

mysql - 克服多余的行

转载 作者:行者123 更新时间:2023-11-29 03:04:44 24 4
gpt4 key购买 nike

我必须从不同的表中插入多个列,但仍然遇到同样的问题。

问题是这样的:我可以将 TableA.ColumnA 中的列插入 TableB.ColumnA 没问题。但接下来我需要将 TableC.columnA INSERT TableC.columnA 插入 TableB.columnB 并且此 INSERT 命令添加额外的行来更改数据的 id。

我的插入命令,加上我为使 id 匹配(未成功)而执行的更新命令如下。

我知道 insert 命令可以添加额外的行,但我如何传递它以便 id 匹配?

我想也许这些列设置了自动递增,但它们没有——所以这似乎不是问题所在。非常感谢任何帮助。

(1) INSERT INTO users_posts 
(author_id,
post_id,
post_title)
SELECT contents.user_id, contents.id, contents.title
FROM contents
WHERE contents.id = id

(2) INSERT INTO users_posts
(post_content)
SELECT content_bodies.content
FROM content_bodies
WHERE content_bodies.id = id

(3) UPDATE users_posts
SET post_content = (SELECT content_bodies.content
FROM content_bodies
WHERE content_bodies.id = users_posts.post_id)

最佳答案

如果我理解你的问题是正确的,你实际上不需要你的第二个和第三个语句,而只是一个更新语句来更新 users_posts.post_content

如果您执行插入,它总是(假设它不会因其他原因(即约束)而失败)插入新行,因此关键字 INSERT

试试这个语句,它根据 ids 从 content_bodies 表将帖子内容添加到 users_posts 表!

UPDATE users_posts AS u 
JOIN content_bodies AS b
ON b.id = u.post_id
SET u.post_content = b.content;

用这个 SQLFiddle 查看它的实际效果

编辑

请运行此查询并让我知道它是否正确匹配数据

SELECT * FROM users_posts u
JOIN content_bodies AS b
ON b.id = u.post_id

关于mysql - 克服多余的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17581069/

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