2012-10-31 64 views
4

我有一個表和id = 1和id = 2的兩行,他們的x參數是1.我也有B表和兩行ID爲1和2。所有具有相同的ID與表,其x參數上乙表中的數據(列)的值爲1。使用SELECT UPDATE多行

甲表

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

乙表

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; 

回答

7

使用此:

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

它的工作原理!謝謝。 – brknl