在 mysql 中使用 SELECT 插入值

Yin*_*ing 6 mysql sql sql-insert

我有 2 个表:具有列(id、用户名、密码)的用户和具有列(user_id、失败、时间)的 user_failed。有什么可能的方法可以仅使用用户名插入表 user_failed 中?我尝试这段代码但失败了:

INSERT INTO `login_attempts`(`user_id`, `time`, `failed`) 
VALUES (SELECT user_id FROM users WHERE username = 'pokemon','',3)
Run Code Online (Sandbox Code Playgroud)

Jon*_*den 6

由于多种原因,您的 SQL 查询不正确。

如果我正确解释了您的查询,以下内容应该有效。

INSERT INTO `login_attempts`(`user_id`, `time`, `failed`)
SELECT id, '', 3 FROM users WHERE username = 'pokemon'
Run Code Online (Sandbox Code Playgroud)

INSERT从 a 到表中SELECT不需要VALUES ( ... ). 以下是如何使用的示例VALUES ( ... )

INSERT INTO `login_attempts`(`user_id`, `time`, `failed`)
VALUES (1, '', 3)
Run Code Online (Sandbox Code Playgroud)

另外,您的子查询SELECT user_id FROM users WHERE username = 'pokemon','',3子句WHERE无效。具体来说,我假设的部分是您想要为和'',3插入的值。timefailed