Tom*_*now 0 mysql sql database
我一直在努力解决这个问题好几个小时都没有用。我一直在看许多与子查询返回不止一行有关的stackoverflow.com问题,但未能找到对我的情况有帮助的子查询。
我有两个表:客户和职位。我试图更新positions.client_id与clients.id WHERE clients.file_name = positions.file_name。
基本上,我有一个需要分配给客户的职位清单。每个客户都有多个职位,但每个职位都恰好分配给一个客户。换句话说,client_id在位置上不是唯一的,但是id在client中是唯一的(主键)。
这是我一直在尝试的不同变体形式:
UPDATE positions
SET client_id = (SELECT clients.id
FROM clients
WHERE clients.file_name = positions.file_name)
Run Code Online (Sandbox Code Playgroud)
它返回。
1242-子查询返回多于1行
在此先感谢您的帮助!
使用LIMIT子句。这会将结果数量限制为一行。
UPDATE positions
SET client_id =
(
SELECT clients.id
FROM clients
WHERE clients.file_name = positions.file_name
LIMIT 1
)
Run Code Online (Sandbox Code Playgroud)
请记住,最佳实践通常是不要使用子查询来实现SQL所需的功能。
| 归档时间: |
|
| 查看次数: |
10708 次 |
| 最近记录: |