Android SQLite 更新当前表基于(当前表+另一个表)的总和)



我在Android SQLite dbHelper中有两个表:

表#1

itemName | PCS
---------+------
item1    | 5
item2    | 7
item3    | 3

表#2

itemName | PCS
---------+------
item2    | 2
item3    | 17

我需要更新表#1中的PCS列,将表#2中的所有PCS添加到表#1(总和(\

中我需要这个输出:

更新表#1

itemName | PCS
---------+------
item1    |  5
item2    |  9
item3    | 20

您可以使用相关的子查询,该子查询从Table2返回pcs的值,并将其添加到Table1pcs的值:

update Table1
set pcs = pcs + coalesce((select pcs from Table2 where Table2.itemname = Table1.itemname), 0)

一种选择是通过使用INSERT OR REPLACE INTO语句合并这些表的行:

INSERT OR REPLACE INTO Table1(itemName,PCS)
SELECT t1.itemName, COALESCE(t1.PCS,0)+COALESCE(t2.PCS,0)
FROM Table1 t1 
LEFT JOIN Table2 t2 ON t2.itemName = t1.itemName;

前提是itemName列定义为主键。

演示

相关内容

最新更新