2010-05-25 132 views
2

我有一個表中有5,000(table1)行。目前,其中有3000人填滿了數據。其餘值目前爲空。在一個單獨的表格(表格2)中,我有剩餘的2000行數據。我只是試圖把表2中的值,並把它們在表1,但這種說法是不工作:爲什麼這個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) 

看起來這應該是工作,但我從基地得到一個錯誤,該數據庫程序我正在使用,只是說錯誤附近「」:語法錯誤...任何幫助?謝謝!

+0

對於什麼數據庫?你有另外一個客戶端可以用來連接數據庫以獲得更好的錯誤信息嗎? – 2010-05-25 00:46:56

+0

我正在使用的數據庫只是一個sqlite 3數據庫。似乎沒有任何工作......感謝編輯的方式 – Wesley 2010-05-25 01:27:25

回答

2

您可以嘗試使用連接來完成此操作。我習慣在T-SQL中使用它,但我相信這個語法將會是相同的或非常相似的。

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

你不需要添加像「where table1.value爲null」的東西嗎? – 2010-05-25 00:54:57

+0

在Oracle中不起作用 – 2010-05-25 01:00:28

1

嘗試在Exists(Select之間加一個空格。