2017-03-07 54 views
0

我试图将连接查询的结果插入到另一个表中。使用派生表在MySQL中执行INSERT .. SELECT

INSERT INTO temp(
SELECT b.id, b.number, b.attempt FROM(
SELECT number FROM duplicate_numbers)a 
JOIN calls b ON b.number=a.number)); 

连接查询在没有INSERT INTO子句的情况下工作正常并返回数据集。但上面的查询提供了SQL语法错误

+0

什么是错误讯息? –

+0

你的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以找到在'SELECT b.id – PrashanD

+0

'附近使用的正确语法。右括号过多。 –

回答

1

更改查询语法如下:

CREATE TABLE temp (`id` int, `number` int, `attempt` int); 

INSERT INTO temp (`id`, `number`, `attempt`) 
SELECT b.id, b.number, b.attempt FROM (
    SELECT number FROM duplicate_numbers 
) a 
JOIN calls b ON b.number=a.number 

工作演示:http://sqlfiddle.com/#!9/24f9f

+0

不起作用。已经尝试过 – PrashanD

+0

@Prashan同样的错误? '你的SQL语法有错误;检查对应于你的MySQL服务器版本的手册,在'SELECT b.id'旁边使用正确的语法? –

+0

您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在第4行')'附近使用正确的语法 – PrashanD