繁体   English   中英

MySQL - 从子查询更新列

[英]MySQL - updating column from a subquery

无法让这个工作。 我有一个'玩家'表,其中有一个主键'Id',还有一个'Name'列。 另一个表'预订'有一个列'PlayerId',它引用了'Players.Id'。

我刚刚在“预订”中添加了一个“名称”列,其中需要包含玩家姓名的实际副本。

我正在尝试使用以下语句设置填充预订中的所有名称:

UPDATE Bookings SET Name = (SELECT Name FROM Players WHERE Players.Id=Bookings.PlayerId);

但我得到的是错误1263:“列设置为默认值; NULL提供给NOT NULL列'名称'在第0行”。

我做错了什么?

尝试这个:

update Bookings, Players
set Bookings.Name = Players.Name
where Bookings.playerId = Players.Id

你必须确保PlayersBookings之间存在一对一的关系(这是我觉得这没有任何意义的唯一方式)。

为此,请使用MYSQL UPDATE JOIN。 这是您需要的查询:

UPDATE Bookings
LEFT JOIN Players
ON Players.Id=Bookings.PlayerId
SET Bookings.Name = Players.Name

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM