2012-06-08 163 views
0

我想從tbl2表格中插入所有數字到tbl1表格中。但是,如果tbl2.number已經存在於tbl1.number中,那麼就不要插入它。這個怎麼做?如果不存在數字,則插入

INSERT INTO tbl1 (number) SELECT tbl2.number FROM tbl2 

回答

2

如果是有意義的有tbl1.number獨特的(或主要)指數,那麼你可以使用INSERT IGNORE

INSERT IGNORE INTO tbl1 (number) SELECT tbl2.number FROM tbl2 
+0

這是快於resokk答案嗎? –

+0

@ user791022 - 我懷疑答案取決於表的相對大小和重疊量。我認爲唯一的方法是基準。 'SET profiling = 1','SHOW PROFILES'和'SHOW PROFILE'語句對此非常有用。在第一印象中,它看起來像Roman的解決方案做了兩倍的索引檢查,但MySQL可能會優化很多這一點。 –

-1

也許使用「IIF」功能與「ISNULL」,以確定是否或者不在輸入字段中存在tbl2號碼。

2

普通SQL(MySQL的非特異性):

INSERT INTO tbl1 (number) SELECT tbl2.number FROM tbl2 WHERE tbl2.number not in (SELECT number from tbl1) 
相關問題