运行带子选择的插入时出现MySQL错误?

时间:2015-03-13 01:53:30

标签: mysql

我正在尝试运行以下MySQL查询:

INSERT INTO table2 (user_id, url_id, price_target)
VALUES 
(
select 1, URL_ID, min(price)
from table1
where price > 0
group by url_id
)

但是得到错误:

1064 - 您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以获得正确的语法,使用在table1附近的'select 1,URL_ID,min(price)附近,其中price> 0组'在第4行

为什么呢?我一直在Oracle中运行类似的查询。如果我单独运行子选择,它会按预期选择记录。

由于

2 个答案:

答案 0 :(得分:2)

错误消息显示" 检查与您的MySQL服务器版本对应的手册,以获得正确的语法"。是你做的吗? INSERT ... SELECT Syntax非常明确:

INSERT INTO table2 (user_id, url_id, price_target)
select 1, URL_ID, min(price)
from table1
where price > 0
group by url_id

答案 1 :(得分:1)

在使用INSERT SELECT STATEMENT时,无需添加VALUES()。请参阅下面的修订脚本。

INSERT INTO table2 (user_id, url_id, price_target)
SELECT 1, URL_ID, min(price)
FROM table1
WHERE price > 0
GROUP BY url_id;