错误#1064 - 您在MySQL子查询中的SQL语法错误
问题描述:
我正在阅读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');
有什么很明显,就是我失踪?
答
平原insert
声明不具有where
条款。 Insert ... select ...
声明可能在选择部分中有一个。
我假设你想注册你的webmaster
用户到一门课程。我会用insert ... select ...
在这种情况下:
INSERT INTO cursosUsuarios (deprecated_cursoID, userID)
SELECT 4255, userID
FROM usuarios
WHERE deprecated_userName = 'webmaster'
正确的语法是INSERT INTO table_name的 VALUES(值1,值2,值3,...); – ad4s
普通插入语句没有where子句。插入...选择...语句可能在选择部分中有一个。 – Shadow