我试图在表格中插入多行。几乎所有这些行的值都与同一个表上的另一组记录相匹配,所以我很好奇我是否可以使用多个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