2017-02-26 21 views
0

私はPaul DuBoisからMySQLの本を読んでいますが、私はサブクエリの実行方法を正確に追いかけています。私の質問のロジックが正しいかどうかはわかりませんが、私の構文が正しいと想像しました。とにかくエラー#1064 - MySQLサブクエリのSQL構文にエラーがあります

、私はこのエラーを取得しておいてください。このクエリの

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 'WHERE userID = (SELECT userID FROM usuarios WHERE deprecated_userName = 'webmast' at line 2

INSERT INTO cursosUsuarios (deprecated_cursoID, userID) VALUES (4255, 1) 
WHERE userID = (SELECT userID FROM usuarios WHERE deprecated_userName = 'webmaster'); 

非常に明白なものは、私が欠けていることはありますか?

+1

正しい構文は次のとおりです(値1、値2、値3、...);:私はこのケースでinsert ... select ...を使用します – ad4s

+0

プレーンinsertステートメントにはwhere句がありません。 Insert ... select ...ステートメントは選択部分に1つを持つことができます。 – Shadow

答えて

1

プレーンinsertステートメントにはwhere句がありません。 Insert ... select ...ステートメントは選択部分にステートメントを持つことができます。

webmasterユーザーをコースに登録することを前提とします。 VALUES TABLE_NAME。INSERT INTO

INSERT INTO cursosUsuarios (deprecated_cursoID, userID) 
SELECT 4255, userID 
FROM usuarios 
WHERE deprecated_userName = 'webmaster' 
+0

あなたの答えをありがとう! 1つの質問:4255はdeprecated_cursoIDの値ですが、私はまだそのようなselect文を使用する必要がありますか? (... SELECT 4255のユーザーID ...)。再度、あなたの助けに感謝します。私は、本書の例がサブクエリを持つselect文で作られていることに気づいた。 – Rosamunda

+1

4255とuserIDの間にカンマがありませんでした。回答を更新しました – Shadow

関連する問題