2016-03-03 87 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。 。 。別名沒有區別。我只是添加了別名,以澄清價值被用於什麼(具有諷刺意味的是,我的澄清嘗試似乎導致了進一步的混淆)。 –