MySQL查询嵌套选择问题

时间:2014-04-29 11:41:30

标签: mysql select nested sql-update

我需要的是在Request表中循环,并且只设置1在请求表中退出的那些数字。

UPDATE Number SET requested=1 WHERE id=(SELECT numberID FROM Request)

返回错误Subquery returns more than 1 row

3 个答案:

答案 0 :(得分:3)

你可以用JOIN作为

来做
UPDATE
Number
inner join Request on Request.numberID = Number.id
set Number.requested = 1 

答案 1 :(得分:0)

使用此

UPDATE Number
SET requested=1 
WHERE id IN (SELECT numberID FROM Request)

请记住," ="只能将一个值连接到一个值。 在您的示例中," ="的左侧是一个值,但在右侧,它是子查询返回的一组值。 这在数据库中不起作用。

希望有所帮助

答案 2 :(得分:0)

使用

UPDATE Number n, Request r SET n.requested = 1 WHERE n.id = r.numberID