我无法得到这个查询在MySQL工作:如何用查询结果更新单个列的值?
UPDATE proyects_c
SET director=(SELECT users.keyid
FROM users,proyects
WHERE users.username=proyects.director
);
现在的问题是,子查询返回不止一行。事情是,这是我想要的。它返回的行数与proyects_c中的行数相同,因此我期望这样做是使用查询结果更新列导向器中的每一行。
但是我得到的错误:
ERROR 1242 (21000) at line 23: Subquery returns more than 1 row
这是有道理的,但我不能让它做我想做的。我究竟做错了什么?
作为第二个问题,我如何将它分解为两个查询?为了清楚起见。
如果users.keyid返回多个值会怎么样?错误本身就是这样说的。 – AK47 2014-10-16 10:06:55
你想要它做什么? – Strawberry 2014-10-16 10:11:11
选中此项。 http://stackoverflow.com/questions/15209414/mysql-update-join – Aravind 2014-10-16 10:14:02