我試圖在表格中插入多行。幾乎所有這些行的值都與同一個表上的另一組記錄相匹配,所以我很好奇我是否可以使用多個SELECT語句編寫單個INSERT語句來插入多行。就像這樣:對多個SELECT語句使用INSERT INTO
INSERT INTO table (col1, col2, col3, col4)
SELECT (newRecordID, col2, col3, col4)
FROM table WHERE col1 = oldRecordID AND col4 = 0
SELECT (newRecordID, col2, col3, col4)
FROM table WHERE col1 = oldRecordID AND col4 = 1
SELECT (newRecordID, col2, col3, col4)
FROM table WHERE col1 = oldRecordID AND col4 = 2
SELECT (newRecordID, col2, col3, col4)
FROM table WHERE col1 = oldRecordID AND col4 = 3
這可能嗎?最後,它應該插入4行,所有行都具有相同的NewRecordID,col4值爲0-3,其他col值取自同一個表上相應的OldRecordID。當我運行它時,它只運行第一個INSERT SELECT語句,然後將其他運行作爲它們自己的SELECT語句。我在連接這些東西時錯過了什麼?我總是可以多次運行它並每次更改值,但我想知道是否有辦法避免這種情況。我欣賞和幫助或有用的提示。
感謝
不,這並不一定會做同樣的事情 - 這將消除重複。建議'聯盟所有',除非你知道*你想重複消除。 –
謝謝!這工作,我用AB建議使用UNION ALL語句。我最終選擇了裏卡多C的解決方案,但這也很棒。我很欣賞快速反應! – jlarson497