我有一个数据库,但我重建了它以进行优化。
这是:
用户
(P) user_id
pseudo
图片
(P) image_id
path
代码
(P) tag_id
#image_id
#user_id (INT)
tag
较旧的表格标签如下:
old_tags
(P) tag_id
#image_id
author (VARCHAR)
tag
我的问题是:old_tags充满了数据(大约6000行),标签是空的,我想将所有数据从old_tags转换为我的新标签表格式。但该列不同,作者是VARCHAR
,user_id是INT
。但是old_tags
和users
之间存在链接,因为作者引用了伪。
我想要类似的东西:
UPDATE tags
SET user_id = (SELECT user_id FROM users, old_tags WHERE users.pseudo = old_tags.author)
我不知道是否清楚,我希望新标签表中的所有内容都相同,而不是“作者”,我想要相应的“user_id”。 我正在使用phpmyadmin,所以如果可能的话建议我可以直接在其中运行。 Thx提前!
答案 0 :(得分:0)
您必须INSERT
向表中添加新行:
INSERT INTO tags (tag_id, image_id, user_id, tag)
SELECT ot.tag_id, ot.image_id, u.user_id, ot.tag
FROM old_tags ot
JOIN users u ON ot.author = u.pseudo