2012-05-26 122 views
2

目前使用MySQL数据库SQL INSERT INTO选择

婉婷在我这里的另一个table (t_1)条件中插入新行插入table (t_2)为每一个匹配的条目。

我还希望为每个条目(来自表计数器的计数)和每个条目的字符串值'减少'包含来自单独表的计数值。不知道如何通过把这个,这是我到目前为止有:

INSERT INTO t_2(count,id,val='decrease') 
SELECT MAX(count) as count FROM counter 
SELECT id FROM t_1 WHERE val < 0 

我得到的错误是:

1064 - 你在你的SQL语法错误;检查对应于你的MySQL服务器版本使用附近“=”下降“)SELECT COUNT FROM计数器SELECT ID FROM T_1其中val < 0”在行1

我知道我正确的语法手册可能不应该有val='decrease',但只是想说明我希望这是插入每个新行的字符串值。

+3

Downvoters照顾解释? – eggyal

+0

正要问同样的问题 – Gary

回答

3

试试这个:

INSERT INTO t_2 (count,id,val) 
SELECT 
    (SELECT MAX(count) FROM counter), 
    t1.id, 
    'decrease' 
FROM t_1 
WHERE val < 0, 
+0

如果我想添加一个字段到字符串值,我可以像正常一样连接它吗?例如: '('decrease'+ t_1.detail)as val' – elzaer

+0

@elzaer:您应该使用[CONCAT('decrease',t_1.detail)](http://dev.mysql.com/doc/refman /5.5/en/string-functions.html#function_concat) – Marco

3

这是你在找什么?

INSERT INTO t_2(count,id,val) 
    SELECT (SELECT MAX(count) as count FROM counter) as count, id, 'decrease' as val 
    FROM t_1 
    WHERE val < 0