4

A テーブルと id=1 と id=2 の 2 つの行があり、それらの x パラメータは 1 です。また、B テーブルと同じ ID 1 と 2 の 2 つの行があります。すべてのデータ (列) を更新しようとしています。 x パラメータが 1 である A テーブルと同じ ID を持つ B テーブル。

テーブル

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 が複数のデータを返し、最初のデータしか更新できないことです。私は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 に答える