2016-07-23 77 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)