2016-03-03 75 views
3

我想TOR未插入选择,看起来像这样:MySQL的INSERT SELECT不插入

INSERT INTO users_extension_usage (userid, extensionid, complete) 
SELECT '3', extensions.id FROM extensions WHERE extensions.folder='definitions', '1' 

但是它有指“1”,当我在phpMyAdmin运行一个问题:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' '1'' at line 2 

我已经尝试过很多不同的SELECT,INSERT等组合,但我看到了猫的问题。我已经看过这里和其他论坛上的任何不同的帖子,但唉最显示我使用的语法!

我试图在这里建立一个SQL小提琴:http://sqlfiddle.com/#!9/9f460

如何这可能工作的任何建议,将感激地接受:)

回答

7

你缺少第三列:

INSERT INTO users_extension_usage(userid, extensionid, complete) 
    SELECT '3', extensions.id, '1' as complete 
    FROM extensions 
    WHERE extensions.folder = 'definitions'; 

'1'属于SELECT声明,不属于WHERE之后。

+1

嗨戈登。非常感谢,这有效......但它让我有点困惑。为什么我们需要将'1'定义为完整的,而不是'3'作为userid? –

+3

@ user2037165。 。 。别名没有区别。我只是添加了别名,以澄清价值被用于什么(具有讽刺意味的是,我的澄清尝试似乎导致了进一步的混淆)。 –