使用SELECT更新多行

时间:2012-10-31 14:11:23

标签: sqlite select join sql-update

我有一个表和两行id = 1且id = 2且x参数为1.我还有B表和两行具有相同的id 1和2.我正在尝试更新所有数据(在B表上具有相同id的A表与x参数为1的表。

id | x |
 1 | 1 |
 2 | 1 |

B表

id | Y  |
 1 | yes|
 2 | yes|

我的查询是

 UPDATE B SET y='No' WHERE B.id=(SELECT A.id FROM A WHERE A.x=1);

问题是select返回mutliple数据,我只能更新第一个数据。 我尝试使用JOIN,但sqlite在INNER附近发出语法错误,我找不到问题。

 UPDATE B SET B.y='No' INNER JOIN A ON B.id=A.id WHERE A.x=1;

1 个答案:

答案 0 :(得分:8)

使用此:

UPDATE ... WHERE B.id IN (SELECT A.id ...);