MySQL使用SELECT从另一个表中插入INTO以及其他数据

时间:2014-12-23 12:04:22

标签: mysql

我想要实现的目标

我试图将一张表中的记录插入另一张表中,但也添加了来自第二张表的其他数据。

示例问题

我试图将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范围之外的数据来填充它。在上面的示例中,它应该是“某些值”。

2 个答案:

答案 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 ''