2011-12-12 75 views
0

我有两个表插入数据到另一个

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

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

,我需要填充T1与T2从数据。为了得到

 
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

试试这个,如果你的表是在同一个数据库:

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

如果你的表是不是在同一个数据库,你必须:

  • 打开数据库1的连接。
  • 查询您想要的记录 - SELECT City FROM t1;。将其保存到内存中的本地集合中。
  • 接近数据库1
  • 的连接打开,通过您的收藏DATABASE2
  • 回路的连接;为每个记录,加载到一个字符串变量一样#SomeCity
  • 运行SQL语句INSERT像这样:INSERT INTO t2(City) VALUES (#SomeCity);
  • 关闭的响应DATABASE2
+0

感谢连接。我忘了补充说我的t1和t2表在不同的数据库(分别是db1和db2)。在这种情况下我应该怎么做?我需要ATTACH DATADASE吗? – user1079655

相关问题