SQL 插入选择

问题描述 投票:0回答:2

当前使用MySQL数据库

想要为另一个

table (t_2)
的 where 条件中的每个匹配条目在
table (t_1)
中插入新行。

我还想为每个条目包含来自单独表的计数值(来自表计数器的计数)以及每个条目的字符串值“减少”。不知道如何解决这个问题,这就是我到目前为止所拥有的:

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 服务器版本相对应的手册,了解在 '='decrease' 附近使用的正确语法) SELECT count FROM counter SELECT id FROM t_1 WHERE val < 0' at line 1

我知道我可能不应该有

val='decrease'
,但只是想说明我希望它是为每个新行插入的字符串值。

mysql sql select insert
2个回答
3
投票

试试这个:

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

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
© www.soinside.com 2019 - 2024. All rights reserved.