вставить данные из одной таблицы в другую - PullRequest
0 голосов
/ 12 декабря 2011

У меня есть две таблицы

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, потому что они имеют одинаковый идентификатор.

Что такоеоператор для выполнения этой операции?

1 Ответ

1 голос
/ 12 декабря 2011

Попробуйте, если ваши таблицы находятся в одной базе данных:

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

Если ваши таблицы НЕ находятся в одной базе данных, вам необходимо:

  • открыть соединение с базой данных1.
  • запрос на нужные записи - SELECT City FROM t1;. Сохраните это в локальной коллекции в памяти.
  • закрыть соединение с базой данных1
  • открыть соединение с базой данных2
  • цикл по вашей коллекции; для каждой записи загрузите в строковую переменную, такую ​​как #SomeCity
  • запустить оператор SQL INSERT следующим образом: INSERT INTO t2(City) VALUES (#SomeCity);
  • закрыть соединение с базой данных2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...