如何使两个 table 条件更新一个 table
How to make two table condition to update one table
大家好,我不明白。
我有两张桌子
帖子:
id|fromid|toid|receiver|sender
1, null, null, user1, user2
用户:
id|username
1, user1
2, user2
如您所见,fromid 和 toid 具有 null 值。所以我想用用户 ID 填充它,但我不明白。
之后的条目应该如下所示:
1, 2, 1, user1, user2
我试过从 fromid 开始,但没有成功。
SELECT @curUsername := user.username, @curUserid := user.id FROM user;
UPDATE post SET post.fromid = @curUserid WHERE post.sender = @curUsername;
当您想要编写任何表达式来组合来自多行的列时,您可以使用联接。
UPDATE Posts
JOIN User AS FromUser ON Posts.sender = FromUser.username
JOIN User AS ToUser ON Posts.receiver = ToUser.username
SET Posts.fromid = FromUser.id,
Posts.toid = ToUser.id;
MySQL 支持在 UPDATE
语句中加入(尽管这不是标准 SQL 的一部分)。
大家好,我不明白。
我有两张桌子
帖子:
id|fromid|toid|receiver|sender
1, null, null, user1, user2
用户:
id|username
1, user1
2, user2
如您所见,fromid 和 toid 具有 null 值。所以我想用用户 ID 填充它,但我不明白。
之后的条目应该如下所示:
1, 2, 1, user1, user2
我试过从 fromid 开始,但没有成功。
SELECT @curUsername := user.username, @curUserid := user.id FROM user;
UPDATE post SET post.fromid = @curUserid WHERE post.sender = @curUsername;
当您想要编写任何表达式来组合来自多行的列时,您可以使用联接。
UPDATE Posts
JOIN User AS FromUser ON Posts.sender = FromUser.username
JOIN User AS ToUser ON Posts.receiver = ToUser.username
SET Posts.fromid = FromUser.id,
Posts.toid = ToUser.id;
MySQL 支持在 UPDATE
语句中加入(尽管这不是标准 SQL 的一部分)。