我有一个类似Table1的表,其中有一些记录。我正在尝试使用此查询INSERT INTO Table2 VALUES (1, 'Orange', (SELECT ID FROM Table1));
将记录插入到Table2中,我想依次插入Table1中的ID到另一个具有所有其他静态值的Table2中。
**Table1**
ID Name
1 Round
2 Edible
3 Blue
4 Seeds
**Table2**
ID Name Table1ID
1 Orange 1
2 Orange 2
3 Orange 4
答案 0 :(得分:3)
我想将表1中的ID依次插入到具有所有其他静态值的表2中。
将静态值用作来自SELECT
的{{1}}查询的一部分
Table1
这在列匹配时才有效。有时列并不完全相同,并且您在INSERT INTO Table2
SELECT 1, 'Orange', ID FROM Table1
中没有所有值。在这种情况下,您仍然可以指定列列表。诀窍不是使用Table2
关键字。
VALUES
现在,INSERT INTO Table2
(ID, Table1ID)
SELECT 0, ID FROM Table1
中的Name
字段将在每个新行中以Table2
结尾。
最后,您可能想从样本数据中创建顺序的“ 1、2、3” ID值。有两种方法可以做到这一点。
第一种方法是,如果此字段是NULL
中的 identity 字段。在这种情况下,请不要对新的ID列使用任何内容:
Table2
另一个选择是使用INSERT INTO Table2
(Name, Table1ID)
SELECT 'Orange', ID FROM Table1
函数:
row_number()
答案 1 :(得分:1)
您很近。您无法在VALUES
中组合SELECT
和INSERT
,而必须选择其中一个。在这种情况下:
INSERT INTO Table2 SELECT 'Two', 0, NULL, ID FROM Table1;