2011-07-20 70 views
0

問題僅與SQLite3相關。如何更新另一個表中的表格行? 我的例子:從另一個更新sqlite3表

表 「cashpoints」 具有列 「ID」, 「bank_id」
表 「banks_cashpoints」 具有列 「CP_ID」, 「B_ID」
表應該由狀態被接合

cashpoints.id = banks_cashpoints.cp_id 

所以我需要:banks_cashpoints.b_id - > cashpoints.bank_id

我的每一次嘗試都失敗了。例如,這(錯誤:近「距離」:語法錯誤):

UPDATE cashpoints 
SET bank_id = b_id 
    FROM banks_cashpoints bc 
WHERE cp_id = id 

當我讀到here,這是不可能的,從語句中使用是更新查詢。但我不知道如何在沒有它的情況下做到這一點。

回答

2

不知道它的工作原理,但它是值得一試:

UPDATE 
    cashpoints 
SET 
    bank_id = b_id 
WHERE 
    b_id IN (
    SELECT 
     b_id 
    FROM 
     banks_cashpoints 
    WHERE 
     cp_id = id 
); 
+1

不,它不會:(。「沒有這樣的列:B_ID」 – lich

+0

發現了它,就沒有必要使用嵌套查詢分離嘗試這樣的:'UPDATE cashpoints SET bank_id =( 選擇 B_ID FROM banks_cashpoints WHERE CP_ID = ID );' – LeleDumbo

+0

大它的工作原理謝謝!。! – lich