2014-02-10 188 views
3

我正在努力處理這段SQL,想知道是否有人可以幫我解決問題。SQL插入查詢

INSERT INTO table_1(
rec_1, 
rec_2, 
rec_3 
) 
VALUES (
val_1, 
val_2, 
val_3 
) 

現在,rec_2和rec_3是清晰的,並且具有絕對值。 Rec_1充滿了來自另一個表的值。現在我想從另一個表中插入這個表中不存在的值。我猜測我應該使用WHERE NOT IN?

因此,這將是這樣的:

INSERT INTO table_1(
rec_1, 
rec_2, 
rec_3 
) 
VALUES (
val_1, 
val_2, 
val_3 
) 
WHERE NOT IN (
SELECT rec FROM table_2 
) 

但是...我怎麼能插入rec_1這些價值觀在我的查詢?

+0

'NOT IN'而不是不存在 –

回答

5

如何簡單INSERT/SELECT如果rec_2rec_3是絕對值:

INSERT INTO table_1 (rec_1, rec_2, rec_3) 
SELECT val_1, 'val_2', 'val_3' 
FROM other_table 
WHERE val_1 NOT IN (SELECT rec_1 FROM table_1) 
2

試試這個

INSERT INTO table_1(rec_1, rec_2, rec_3) 
SELECT val_1, val_2, val_3 FROM tablename 
WHERE NOT EXISTS (SELECT rec FROM table_2) 
4
INSERT INTO table_1(rec_1, rec_2, rec_3) 
SELECT val_1, val_2, val_3 FROM dual WHERE NOT EXISTS (SELECT rec FROM table_2) 

你可能要檢查這個answer爲進一步使用

更多詳情here

0
 4 ways to insert record 
1--> {Simple Insertion when table column sequence is known} 
     Insert into Table1 
     values(1,2,...) 

    2--> {Simple insertion mention column} 
     Insert into Table1(col2,col4) 
     values(1,2) 

    3--> {bulk insertion when num of selected collumns of a table(#table2) are equal to Insertion table(Table1) } 
     Insert into Table1 {Column sequence} 
     Select * -- column sequence should be same. 
      from #table2 

    4--> {bulk insertion when you want to insert only into desired column of a table(table1)} 
     Insert into Table1 (Column1,Column2 ....Desired Column from Table1) 
     Select Column1,Column2..desired column from #table2 
      from #table2