2011-02-06 50 views
0

我有table1,我已經有了一些nvarchar結果。2個表之間的條件SQL插入

nvarchar name 
name1 
name3 
name4 

我有表2,我有格式的記錄

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

我需要通過表2中的所有記錄,他們組的名稱,然後將所有的名字記錄到表1但條件他們已經不存在table1了。

你能幫忙嗎?我寧願刪除table1並從table2重新創建它,但table1有一些不在table2中的記錄,他們必須留在那裏。

謝謝。

+0

你爲什麼寧願刪除table1的?這樣做有什麼好處? – 2011-02-06 12:39:02

回答

4

這將插入從表2的所有名稱爲table1的,是不是已經在表1:

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