Условная вставка SQL между 2 таблицами - PullRequest
0 голосов
/ 06 февраля 2011

У меня есть таблица1, где у меня уже есть некоторые результаты nvarchar.

nvarchar name
name1
name3
name4

У меня есть таблица2, где у меня есть записи в формате

nvarchar name | nvarchar subname
name1         | subname1
name1         | subname2
name1         | subname3
name1         | subname4
name2         | subname1
name2         | subname2
name3         | subname3

Мне нужно просмотреть все записи вtable2 и сгруппируйте их по имени, затем вставьте все записи имен в table1, но с условием, что они уже не существуют в table1.

Не могли бы вы помочь с этим?Я бы предпочел удалить table1 и воссоздать его из table2, но в table1 есть некоторые записи, которых нет в table2, и они должны оставаться там.

Спасибо.

1 Ответ

4 голосов
/ 06 февраля 2011

Это вставит все имена из таблицы2 в таблицу1, которой еще нет в таблице1:

INSERT INTO table1 
(
    name
)
SELECT t2.name
FROM   table2 t2
WHERE NOT EXISTS
(
    SELECT 1
    FROM   table1 t1
    WHERE  t1.name = t2.name 
)
...