2016-07-23 72 views
2

我有2个表:具有列(id,用户名,密码)和user_failed列(user_id,失败,时间)的用户。是否有任何可能的方式,我可以通过只使用用户名插入到表user_failed?我试试这个代码,但它失败了:在mysql中使用SELECT的INSERT值

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

回答

3

您的SQL查询不正确的原因有几个。

如果我已正确解释您的查询,下面的工作应该可行。

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

INSERT荷兰国际集团到一个表从SELECT不需要VALUES (...)。这里是你将如何使用VALUES (...)一个例子:

INSERT INTO `login_attempts`(`user_id`, `time`, `failed`) 
VALUES (1, '', 3) 

而且,你的子查询SELECT user_id FROM users WHERE username = 'pokemon','',3WHERE条款无效。具体而言,我假设的'',3部分是您想插入的值为timefailed

+0

它不能我得到这个错误#1054 - 在“字段列表”未知列“USER_ID” – Ying

+0

啊它的工作,我只是在我的用户更改表的user_id为ID,因为它是id不是user_id。谢谢 – Ying

0

这将起作用....您必须在语句前后添加大括号。

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