将数据从一个表插入另一个表

时间:2011-12-12 18:27:53

标签: sql sqlite

我有两张桌子

T1
Id  |     City
1   |Van Nuys
2   |Diamond Bar
3   |Anaheim

T2
Id  |     City
1   |Burbank
2   |N.Hollywood
3   |Van Nuys

我需要用来自T2的数据填充T1。获得

T1
Id  |     City
1   |Van Nuys
2   |Diamond Bar
3   |Anaheim  
4   |Burbank
5   |N.Hollywood

我试过像

这样的东西
const char *insert_sql = "INSERT INTO t1 SELECT * FROM t2";

我认为它不会将数据从t2插入到t1中,因为它们具有相同的ID。

执行此操作的声明是什么?

1 个答案:

答案 0 :(得分:1)

如果您的表位于同一个数据库中,请尝试此操作:

INSERT INTO t1(City)
    SELECT City from t2 WHERE City NOT IN (SELECT City From t1)

如果您的表不在同一个数据库中,则必须:

  • 打开与database1的连接。
  • 查询您想要的记录 - SELECT City FROM t1;。将其保存到内存中的本地集合中。
  • 关闭与database1的连接
  • 打开与database2的连接
  • 循环收集你的收藏;对于每条记录,加载到字符串变量#SomeCity
  • 运行SQL INSERT语句,如下所示:INSERT INTO t2(City) VALUES (#SomeCity);
  • 关闭与database2的连接