2016-09-01 42 views
2

與標題一樣,我需要在table1中搜索一個值並更新table2。SQL(SQLite)從表1中搜索並在表2中更新

table1的

|id | nameEN | namePL| 
---------------------- 
|1 | Cat | Kot | 
|2 | Cow | Krowa | 
|3 | Dog | Pies | 

表2

|id | nameEN | namePL| 
---------------------- 
|1 | Cow |  | 
|2 | Dog |  | 

我需要table1中搜索翻譯表2中的話。
我將在Java中的TableView中顯示table2。

如何解決問題?

+0

你想簡單地_show_翻譯,還是你的價值觀想實際更新(堅持)翻譯數據到'table2'? –

+0

第二種選擇。在TableView(可編輯)中,我將在不在表格中時添加翻譯1 – programmerJavaPL

+0

一切都很好。 – programmerJavaPL

回答

2

SQLite中,更新與JOIN將無法正常工作,所以你可以使用下面的查詢更新到table2

UPDATE table2 
SET namePL = (
     SELECT namePL 
     FROM table1 
     WHERE nameEN = table2.nameEN 
     ) 
WHERE namePL = '' 
+0

太好了。以及如何更新已添加的翻譯?然後namePL =''它不起作用。 – programmerJavaPL

+0

@programmerjavapl你的意思是不管'namePL'列中的值是否存在,你想要更新所有的條目嗎?如果只是簡單地刪除'WHERE namePL ='''條件 – Arulkumar

+0

那時候我會放tableview的翻譯,我會在數據庫中更新上面的命令是否再次誘導出發?在這一刻,我在數據庫中有11000行。數據庫中是否有這種可能性? – programmerJavaPL

-1
UPDATE table2 
SET namePL = (SELECT TOP 1 namePL FROM table1 t1 where t1.nameEN = nameEN) 
where namePL = '' or namePL IS NULL 
+0

TOP僅適用於其他一些SQL方言。 –

+0

我的不好,你需要添加限制1而不是TOP 1和查詢 – Absurd

+0

請編輯更多的信息。僅限代碼和「嘗試這個」的答案是不鼓勵的,因爲它們不包含可搜索的內容,也不解釋爲什麼有人應該「嘗試這個」。 – abarisone