4

我有一个表和两行 id=1 和 id=2 并且它们的 x 参数为 1。我还有 B 表和两行具有相同的 id 1 和 2。我正在尝试更新所有数据(列) B 表与 X 参数为 1 的表具有相同的 id。

一张桌子

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);

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

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

1 回答 1

8

用这个:

UPDATE ... WHERE B.id IN (SELECT A.id ...);
于 2012-10-31T14:13:53.723 回答