2014-02-05 150 views
0

以下是我在一个表中插入的查询和另一个表中的一些特定值。请让我知道什么是编写这样的查询的适当方式。谢谢,这个查询有什么问题

Insert into c_table (name,number,class) 
values ('1','2',select count(id) from thetable) 
+3

是否有任何使用SELECT与INSERT结合使用的例子,或者我们在此打破新的groud? – Strawberry

回答

1

非常接近,但尝试封闭的子查询在括号:

insert into c_table (name,number,class) 
values ('1','2',(select count(id) from thetable)) 
+0

非常接近被关闭你的意思是 – zee

+1

@NullSoulException他提到的查询实际上工作。这个查询有什么问题? – user3027531

+1

@ user3027531似乎并不是推荐的正确形式,因为只要您更改该子查询以使其返回多行,MySQL会说什么?我知道它喜欢牛仔风格的组合,但我不确定它是否会喜欢牛仔风格的子查询。 –

3

取而代之的是VALUES()条款,在SELECT组件使用INSERT INTO ...SELECT模式与静态值的前两列。 SELECT列表中前两个伪列的值始终相同,但COUNT()的值将随thetable.动态变化。如有必要,请确保将WHERE子句添加到SELECT语句中。

INSERT INTO c_table (name, number, class) 
    SELECT 
    '1' AS name, 
    '2' AS number, 
    COUNT(id) AS class 
    FROM thetable 
/* WHERE <conditions if necessary> */