2012-10-31 5 views
4

У меня есть таблица и две строки с id = 1 и id = 2, а их параметр x равен 1. У меня также есть таблица B и две строки с одинаковыми идентификаторами 1 и 2. Я пытаюсь обновить все данные (столбец) по таблице B, который имеет тот же идентификатор с таблицей, чьи х параметр 1.UPDATE несколько строк с использованием SELECT

таблица

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

Проблема заключается в том, чтобы выбрать возврат данных mutliple, и я могу обновлять только первые данные. Я пытался использовать 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

Смежные вопросы