使用SELECT更新多行

brk*_*knl 4 sqlite select join sql-update

我有一个表和两行id = 1和id = 2,他们的x参数是1.我也有B表和两行具有相同的id 1和2.我试图更新所有的数据(列) B表与具有x参数为1的表具有相同的id.

一张桌子

id | x |
 1 | 1 |
 2 | 1 |
Run Code Online (Sandbox Code Playgroud)

B表

id | Y  |
 1 | yes|
 2 | yes|
Run Code Online (Sandbox Code Playgroud)

我的疑问是

 UPDATE B SET y='No' WHERE B.id=(SELECT A.id FROM A WHERE A.x=1);
Run Code Online (Sandbox Code Playgroud)

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

 UPDATE B SET B.y='No' INNER JOIN A ON B.id=A.id WHERE A.x=1;
Run Code Online (Sandbox Code Playgroud)

小智 8

用这个:

UPDATE ... WHERE B.id IN (SELECT A.id ...);
Run Code Online (Sandbox Code Playgroud)