在我的MySQL数据库中,我有两个表,item
和users
。在项目表中,我有两列名为created_by
和created_by_alias
。由别名列创建的列完全填充了名称,但created_by
列为空。我的下一个表是users
表。其中包含id
和name
列。
我想知道是否可以使用MySQL将项目表中的created_by_alias
与name
表中的users
列进行匹配,然后获取用户并将其放入created_by
列。
我在考虑某种JOIN
功能。任何想法都将不胜感激。
答案 0 :(得分:2)
实际上,你确实是在正确的方向 - MySQL有update join
语法:
UPDATE items
JOIN users ON users.name = items.created_by_alias
SET created_by = items.id
答案 1 :(得分:0)
这应该有效:
UPDATE items
SET created_by = (SELECT u.id
FROM users u
WHERE u.name = items.created_by_alias)
答案 2 :(得分:0)
试试这个:
UPDATE item i
INNER JOIN users u ON i.created_by_alias = u.name
SET i.created_by = u.id;
答案 3 :(得分:0)
以下内容适用于MySQL
UPDATE item
INNER JOIN users
ON item.created_by_alias = users.name
SET item.created_by = users.id
当然,您还应该检查所有用户名是否都是唯一的......