我试图将一张表中的记录插入另一张表中,但也添加了来自第二张表的其他数据。
我试图将insert field1,field2和field3放入tableA。 field1和field2来自tableB。但是,field3是我将使用我的应用程序填充的一些额外的任意数据。
INSERT INTO tableA (field1, field2, field3) SELECT (field1, field2) FROM tableB WHERE id='1'
目前尚未插入Field3,因为上述查询在查询中没有该字段。我试过了:
INSERT INTO tableA (field1, field2, field3) (SELECT (field1, field2) FROM tableB WHERE id='1'), 'somevalue';
但这似乎不起作用。
我不希望将field3设置为NULL或空字符串。我需要填充该列,但是我需要使用来自INSERT范围之外的数据来填充它。在上面的示例中,它应该是“某些值”。
答案 0 :(得分:7)
您只需在select
列表中包含常量:
INSERT INTO tableA(field1, field2, field3)
SELECT field1, field2, 'somevalue'
FROM tableB
WHERE id = '1';
另外,请勿围绕括号中select
的列。
答案 1 :(得分:-1)
当您从另一个表插入数据时,Insert语句列的数量应与select列匹配在您的情况下,这可能是
INSERT INTO tableA (field1, field2, field3)
SELECT (field1, field2,Null or 'Somevalue') FROM tableB WHERE id='1' // You have to pass some value or null or ''