2010-05-25 4 views
2

У меня есть таблица, в которой есть 5000 (table1) строк. В настоящее время 3000 из них заполнены данными. Остальные значения в настоящее время равны нулю. В отдельной таблице (таблица 2) у меня есть остальные 2000 строк данных. Я просто пытаюсь взять значения в table2 и поместить их в table1, но это утверждение не работает:Почему этот запрос обновления sql не работает?

Update table1 
    Set field1 = (Select field1 
        From table2 
       Where table1.id = table2.id) 
Where Exists(Select field1 
       From table2 
       Where table1.id = table2.id) 

Похоже, что это должно работать, но я получаю сообщение об ошибке из базы, то дб программа, которую я использую, просто говорит об ошибке Near "": синтаксическая ошибка ... любая помощь ?? Благодаря!

+0

Для какой базы данных? У вас есть другой клиент, который вы можете использовать для подключения к базе данных, чтобы получить лучшее сообщение об ошибке? –

+0

База данных, которую я использую, представляет собой просто базу данных sqlite 3. И ничего, похоже, не работает ... спасибо за редактирование, кстати – Wesley

ответ

2

Вы можете попробовать сделать это с помощью соединения. Я привык делать это в T-SQL, но я считаю, что синтаксис будет таким же или довольно похожим.

Update Table1 
JOIN Table2 ON Table1.id = Table2.id 
SET Table1.value = Table2.value 
+0

Не нужно было бы добавить что-то вроде «где table1.value равно null»? –

+0

Не работает в Oracle –

1

Попробуйте помешать пробелу между Exists и (Select.

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