簡體   English   中英

如果一個值不存在於另一個表中,如何在其中插入一個值

[英]How do i insert a value in 1 table if it doesnt exist in another

我有兩個幾乎相同的表,想將第1個而不是第2個存在的值插入第2個。

我不關心在第二個表中使用缺少的值來更新第一個表,反之亦然。

我嘗試了這個選擇作為測試,但是即使我知道缺少值也沒有返回任何結果

select * from table1 where Not Exists(Select * from table2)

假設您有一個將兩個表連接在一起的字段,則可以執行以下操作:

INSERT INTO table2 (id, col1)
SELECT id, col1
FROM table1
WHERE NOT EXISTS (
    SELECT 1
    FROM table2 
    WHERE table1.id = table2.id)

您還可以使用NOT INOUTER JOIN完成相同的操作,但是您仍然需要兩個表中的匹配條件。

您可以使用大致如下的INSERT語句執行此操作:

INSERT INTO TABLE2(Col1, Col2, ...)
  SELECT Col1, Col2, ....
  FROM TABLE1 t1
  WHERE NOT EXISTS
  (SELECT 1 FROM Table2 t2 WHERE t2.Criteria = t1.Criteria);

類似地,可以對TABLE2 => TABLE1進行相反的操作。

您需要指定組成通用標准的列。 請注意,如果將兩個表彼此獨立地插入(如需求所示),則自動生成的列(例如GuidsIDENTITY在兩個表中會有所不同,因此不適合作為連接條件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM