2016-09-30 98 views
0

我有两个表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 
+0

insert INTO t1(Open)SELECT balanc FROM t2 WHERE t2.idCl = t1.idClient – Ali

回答

0

您可以从一个表使用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语句。

+0

我认为where子句应该在这个查询中,因为他不想在最终结果中包含mia。 –

+0

@AnkitBajpai我错过了,谢谢 –

+0

@radu这个查询还增加了我不想要的Mia余额。 – Ali