androidsqlite更新当前表基于(当前表+另一个表之和)

4szc88ey  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(281)

我在android sqlite dbhelper中有两个表:
表1:

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

表2:

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

我需要更新表#1中的PC列,将表#2中的所有PC添加到表#1(sum)
我需要这个输出:
更新表#1:

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

krugob8w1#

可以使用返回 pcsTable2 把它加到 pcsTable1 :

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

yzuktlbb2#

一种选择是通过使用 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 列被定义为主键。
演示

相关问题