我有一个表和两行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;
答案 0 :(得分:8)
使用此:
UPDATE ... WHERE B.id IN (SELECT A.id ...);