如何将数据从一个表插入到sqlite中的其他表
我有两个表t1和t2,我想从t1中获取数据并插入到t2中。如何将数据从一个表插入到sqlite中的其他表
T1
id amount cId nameC open
10L 100000 CL-J Jon 0
10L 100000 CL-J Jon 0
10L 100000 CL-A Alina 0
10L 100000 CL-A Alina 0
10L 100000 CL-H Harry 0
T2
cId nameC balance
CL-J Jon 5000
CL-A Alina 10000
CL-H Harry 4000
CL-M Mia 0
我想结果是这样的T1插入数据后
id amount cId nameC open
10L 100000 CL-J Jon 0
10L 100000 CL-J Jon 0
10L 100000 CL-A Alina 0
10L 100000 CL-A Alina 0
10L 100000 CL-H Harry 0
10L 100000 CL-J Jon 5000
10L 100000 CL-A Alina 10000
10L 100000 CL-H Harry 4000
您可以从一个表使用INSERT INTO .. SELECT
移动到另一个数据:
INSERT INTO T1(id, amount, cId, nameC, open)
SELECT '10L'
, 100000
, cId
, nameC
, open
FROM t2
WHERE NOT EXISTS (SELECT 1
FROM t1
WHERE t1.id = '10L'
AND t1.Amount = 100000
AND t1.cId = t2.cId
AND t1.nameC = t2.nameC
AND t1.open = t2.open)
AND (t2.NameC <> 'Alina' AND t2.cId <> 'CL-M' AND t2.open <> 0)
AND (t2.NameC <> 'John Snow' AND t2.cId <> 'CL-JS' AND t2.open <> 0)
AND ... -- other conditions here
理想情况下,您将有一个WHERE
条件,该条件可以过滤数据的方式,并确保您不会意外插入两次相同的数据,方法是使用NOT EXISTS
语句。
我认为where子句应该在这个查询中,因为他不想在最终结果中包含mia。 –
@AnkitBajpai我错过了,谢谢 –
@radu这个查询还增加了我不想要的Mia余额。 – Ali
insert INTO t1(Open)SELECT balanc FROM t2 WHERE t2.idCl = t1.idClient – Ali