Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何使两个表条件更新一个表_Mysql_Mariadb - Fatal编程技术网

Mysql 如何使两个表条件更新一个表

Mysql 如何使两个表条件更新一个表,mysql,mariadb,Mysql,Mariadb,大家好,我不明白 我有两张桌子 职位: id|fromid|toid|receiver|sender 1, null, null, user1, user2 用户: 如您所见,fromid和toid具有null值。所以我想用用户id填充它,但我不明白 以后的条目应如下所示: 1, 2, 1, user1, user2 我尝试从fromid开始,但没有成功 SELECT @curUsername := user.username, @curUserid := user.id FROM use

大家好,我不明白

我有两张桌子

职位:

id|fromid|toid|receiver|sender 
1, null, null, user1, user2
用户:

如您所见,fromidtoid具有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的一部分)

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;