插入...值(SELECT ... FROM ...)
我正在尝试使用来自另一个表的输入INSERT INTO
到表中。 尽管对于许多数据库引擎来说这是完全可行的,但我总是很难记住当天的SQL
引擎(MySQL,Oracle,SQL Server,Informix和DB2)的正确语法。
是否存在来自SQL standard
(例如SQL-92)的银牌语法,它可以让我插入值而不用担心底层数据库?
尝试:
INSERT INTO table1 ( column1 )
SELECT col1
FROM table2
这是标准的ANSI SQL,应该适用于任何DBMS
它绝对适用于:
@ Shadow_x99:应该可以正常工作,并且您还可以有多个列和其他数据:
INSERT INTO table1 ( column1, column2, someInt, someVarChar )
SELECT table2.column1, table2.column2, 8, 'some string etc.'
FROM table2
WHERE table2.ID = 7;
编辑:我应该提到,我只在Access,SQL 2000/2005 / Express,MySQL和PostgreSQL中使用了这种语法,因此应该涵盖这些语法。 一位评论者指出,它将与SQLite3一起工作。
要从另一个表中获取多值INSERT
中的一个值,我在SQLite3中执行了以下操作:
INSERT INTO column_1 ( val_1, val_from_other_table )
VALUES('val_1', (SELECT val_2 FROM table_2 WHERE val_2 = something))
链接地址: http://www.djcxy.com/p/2751.html