2016-07-23 1 views
2

У меня есть 2 таблицы: пользователи с столбцами (id, username, password) и user_failed с столбцами (user_id, failed, time). есть ли какой-либо возможный способ, который я могу вставить в таблицу user_failed, используя только имя пользователя? Я пробовал этот код, но это не удалось:Значение INSERT с использованием SELECT в mysql

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 ING в таблицу из SELECT не требует VALUES (...). Вот пример того, как вы будете использовать VALUES (...):

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

Кроме того, ваш суб-запрос SELECT user_id FROM users WHERE username = 'pokemon','',3 оговорка WHERE является недействительным. В частности, часть '',3, которую я предполагаю, это значения, которые вы хотели бы вставить для time и failed.

+0

это не я получаю эту ошибку # 1054 - Неизвестный столбец «user_id» в «списке полей» – Ying

+0

ах это работа, я просто изменить user_id к идентификатору, так как в моей таблице пользователей это id не user_id. благодаря – Ying

0

Это будет работать .... вам нужно добавить фигурные скобки до и после выписок.

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