所以我目前正在試圖拿一張桌子,並將其添加到另一個表中,但由於某種原因,它不按我想要的方式工作。 這兩個表中有三列,我只想從表2中的每行數據添加到表1,如果表2的前2列不在表1中(我不在意第三列)SQL:如何添加到表中而沒有重複項?
這是我到目前爲止有:
INSERT INTO table1 (col1, col2, col3)
SELECT a.col1, a.col2, a.col3
FROM table2 as a
WHERE NOT EXISTS (SELECT b.col1, b.col2
FROM table1 as b
WHERE a.col1 = b.col1 AND a.col2 = b.col2);
我檢查四周,這似乎它應該工作,但它不是,但任何人都可以看到,爲什麼?
這個語法是正確的 - 它有時被稱爲反連接。這實際上是您嘗試進行的首選方式。我唯一要補充的是,select中「不存在」的列是不必要的。使用半連接或反連接,您可以「簡單選擇1」或「選擇空」。也就是說,你所做的沒有任何問題。你能解釋一下錯誤,並在兩個表的數據前後顯示一些樣本。 *你做了什麼應該可以工作* – Hambone
@spaceboound這個查詢是正確的。你可能會在別的地方出錯。如果你能把屏幕截圖顯示錯誤信息或輸出結果會更好。 –